概念
我理解挂载就是将磁盘和目录关联起来, 当然也可以目录和目录关联
使用
通过 fdisk 可以查看磁盘分区情况
fsdisk -l
查询结果
- [root@lazy ~]# fdisk -l
- Disk /dev/sda: 500.1 GB, 500107862016 bytes, 976773168 sectors
- Units = sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk label type: dos
- Disk identifier: 0xdced7faf
- Device Boot Start End Blocks Id System
- /dev/sda1 * 2048 100677631 50337792 7 HPFS/NTFS/exFAT
- /dev/sda2 100677632 101701631 512000 83 Linux
- /dev/sda3 101701632 654843903 276571136 8e Linux LVM
- Disk /dev/mapper/centos-root: 53.7 GB, 53687091200 bytes, 104857600 sectors
- Units = sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk /dev/mapper/centos-swap: 4026 MB, 4026531840 bytes, 7864320 sectors
- Units = sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk /dev/mapper/centos-home: 214.7 GB, 214748364800 bytes, 419430400 sectors
- Units = sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk /dev/mapper/centos-var: 10.7 GB, 10737418240 bytes, 20971520 sectors
- Units = sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
可以看出我的机器上有一块硬盘 / dev/sda ,500G 大小, 被分成了三个区, 其中 sda3 被创建为 LVM 物理卷, 有 4 个逻辑卷. 三一个区大小总和不到 500G, 说明还有可被分配的空间, 使用 fdisk 进行分区
- [root@lazy home]# fdisk /dev/sda
- Welcome to fdisk (util-linux 2.23.2).
- Changes will remain in memory only, until you decide to write them.
- Be careful before using the write command.
- Command (m for help): n
- Partition type:
- p primary (3 primary, 0 extended, 1 free)
- e extended
- Select (default e): p
- Selected partition 4
- First sector (654843904-976773167, default 654843904):
- Using default value 654843904
- Last sector, +sectors or +size{K,M,G} (654843904-976773167, default 976773167):
- Using default value 976773167
- Partition 4 of type Linux and of size 153.5 GiB is set
- Command (m for help): p
- Disk /dev/sda: 500.1 GB, 500107862016 bytes, 976773168 sectors
- Units = sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk label type: dos
- Disk identifier: 0xdced7faf
- Device Boot Start End Blocks Id System
- /dev/sda1 * 2048 100677631 50337792 7 HPFS/NTFS/exFAT
- /dev/sda2 100677632 101701631 512000 83 Linux
- /dev/sda3 101701632 654843903 276571136 8e Linux LVM
- /dev/sda4 654843904 976773167 160964632 83 Linux
命令说明:
- n # 新建分区
- -e # 创建扩展分区)
- -p # 创建主分区)
- -t # 改变分区类型)
- p # 查看分区
- w # 将信息写入磁盘
使用 df 命令查看磁盘挂载情况
- [root@lazy home]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/mapper/centos-root 50G 1.7G 49G 4% /
- devtmpfs 847M 0 847M 0% /dev
- tmpfs 859M 0 859M 0% /dev/shm
- tmpfs 859M 33M 826M 4% /run
- tmpfs 859M 0 859M 0% /sys/fs/cgroup
- /dev/mapper/centos-home 200G 16G 184G 8% /home
- /dev/mapper/centos-var 10G 8.1G 2.0G 81% /var
- /dev/sda2 497M 130M 367M 27% /boot
- tmpfs 172M 0 172M 0% /run/user/0
创建目录 / mnt/haha, 将刚刚创建的分区 sda4 挂载到该目录
- [root@lazy /]# mkdir /mnt/haha
- [root@lazy /]# mount /dev/sda4 /mnt/haha
发现报错 mount: special device /dev/sda4 does not exist, 找不到分区, 查看 / pro/partitions
- [root@lazy /]# cat /proc/partitions
- major minor #blocks name
- 11 0 1048575 sr0
- 8 0 488386584 sda
- 8 1 50337792 sda1
- 8 2 512000 sda2
- 8 3 276571136 sda3
- 253 0 52428800 dm-0
- 253 1 3932160 dm-1
- 253 2 209715200 dm-2
- 253 3 10485760 dm-3
确实没有分区 sda4, 这时需要让内核重读磁盘分区表, 可以通过 partx 工具让内核重读磁盘分区表
- partx -d /dev/sda // 所有信息清零
- partx -a /dev/sda // 添加分区信息
- partx -s /dev/sda // 显示分区信息
再进行挂载, 报错
mount: unknown filesystem type '(null)'
格式化分区
mkfs -t ext2 /dev/sda4
挂载不再报错, df -h 查看
- [root@lazy haha]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/mapper/centos-root 50G 1.7G 49G 4% /
- devtmpfs 847M 0 847M 0% /dev
- tmpfs 859M 0 859M 0% /dev/shm
- tmpfs 859M 33M 826M 4% /run
- tmpfs 859M 0 859M 0% /sys/fs/cgroup
- /dev/mapper/centos-home 200G 16G 184G 8% /home
- /dev/mapper/centos-var 10G 8.1G 2.0G 81% /var
- /dev/sda2 497M 130M 367M 27% /boot
- tmpfs 172M 0 172M 0% /run/user/0
- /dev/sda4 152G 60M 144G 1% /mnt/haha
- [root@lazy haha]#
可以利用 umount 取消挂载
- [root@lazy haha]# umount /mnt/haha
- [root@lazy haha]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/mapper/centos-root 50G 1.7G 49G 4% /
- devtmpfs 847M 0 847M 0% /dev
- tmpfs 859M 0 859M 0% /dev/shm
- tmpfs 859M 33M 826M 4% /run
- tmpfs 859M 0 859M 0% /sys/fs/cgroup
- /dev/mapper/centos-home 200G 16G 184G 8% /home
- /dev/mapper/centos-var 10G 8.1G 2.0G 81% /var
- /dev/sda2 497M 130M 367M 27% /boot
- tmpfs 172M 0 172M 0% /run/user/0
- [root@lazy haha]#
/etc/fstab 和 / etc/mtab
/etc/fstab 记录了计算机上硬盘分区的相关信息, 启动 Linux 的时候, 检查分区的 fsck 命令, 和挂载分区的 mount 命令, 都需要 fstab 中的信息, 来正确的检查和挂载硬盘. 所以可以在这个文件中加入挂载盘的信息, 实现启动时挂载;
- [root@lazy haha]# cat /etc/fstab
- #
- # /etc/fstab
- # Created by anaconda on Sun Mar 6 22:36:43 2016
- #
- # Accessible filesystems, by reference, are maintained under '/dev/disk'
- # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
- #
- /dev/mapper/centos-root / xfs defaults 0 0
- UUID=846e966f-11ed-4b3f-b7d4-ddfff975cb6a /boot xfs defaults 0 0
- /dev/mapper/centos-home /home xfs defaults 0 0
- /dev/mapper/centos-var /var xfs defaults 0 0
- /dev/mapper/centos-swap swap swap defaults 0 0
- [root@lazy haha]#
用第一行来说明各列代表的含义,
/dev/mapper/centeros-home 可以是设备名称, LABEL UUID 伪文件系统名称
/ 挂载点, 即指定的文件目录
xfs 文件系统类型
defaults 挂载选项
0 存储频率 0 不做备份, 1 每天转储, 2 每隔一天转储
0 自检次序 0 不自检, 1 首先自检, 一般只有 rootfs 才用到
/etc/mtab 记载的是现在系统已经装载的文件系统, 包括操作系统建立的虚拟文件等; 而 / etc/fstab 是系统准备装载的. 每当 mount 挂载分区, umount 卸载分区, 都会动态更新 mtab,mtab 总是保持着当前系统中已挂载的分区信息, fdisk,df 这类程序, 必须要读取 mtab 文件, 才能获得当前系统中的分区挂载情况. 当然我们自己还可以通过读取 / proc/mount 也可以来获取当前挂载信息
来源: http://www.bubuko.com/infodetail-2733637.html