Linux磁盘管理
一、虚拟机添加磁盘
- 步骤一:打开虚拟机,点击左侧“编辑虚拟机设置”选项



- 步骤四:不断next(下一步),直到出现如下图所示界面,选中“将虚拟磁盘存储为单个文件”,至于磁盘大小自己选择,我这里是默认的20GB,选好之后下一步


- 步骤六:步骤五完成后会回到如步骤二图所示界面,点击其下方的“确定”选项,会回到步骤一所示图片,若“设备”下方出现“磁盘2”,表示磁盘添加成功

二、磁盘管理
1. 查看磁盘设备
- sd表示硬盘
- Linux系统,设备存放在dev文件夹下
- ls /dev | grep sd 将dev文件夹下带有sd字样的文件或者目录过滤出来(grep 关键字 —> 将带有关键字的文件或目录列出来)
[root@myserver ~]# ls /dev | grep sdsdasda1sda2sdbsdcsdd[root@myserver ~]# -----------------------------------------------------------------------· sda表示第一块磁盘,是我们安装系统时添加的· sda1为第一块磁盘的第一个分区,sda2为第一块磁盘的第二个分区· sdb表示第二块磁盘,是我们手动添加的(sdc、sdd也是手动添加的,分别代表第二和第三块磁盘)
2. Linux磁盘使用
(1) 分区
- 有mbr和gpt两种分区,较小时使用mbr分区,分区大于2TB时使用gpt分区
- fdisk —> 分区工具
[root@myserver ~]# fdisk /dev/sdbWelcome to fdisk (util-linux 2.32.1).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Device does not contain a recognized partition table.Created a new DOS disklabel with disk identifier 0x9dab2882.Command (m for help): nPartition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions)Select (default p): pPartition number (1-4, default 1): 1First sector (2048-41943039, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +5GCreated a new partition 1 of type 'Linux' and of size 5 GiB.Command (m for help): pDisk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x9dab2882Device Boot Start End Sectors Size Id Type/dev/sdb1 2048 10487807 10485760 5G 83 LinuxCommand (m for help): wqThe partition table has been altered.Calling ioctl() to re-read partition table.Syncing disks.[root@myserver ~]# ls /dev | grep sdsdasda1sda2sdbsdb1sdcsdd-------------------------------------------------------------------------------· fdisk /dev/sdb --> 进入分区模式,对第二块磁盘(sdb)进行分区操作· Command (m for help): n --> 输入n,创建分区· Select (default p): p --> 输入p创建主分区(默认,能创建4个),输入e创建扩展分区· Partition number (1-4, default 1): 1 --> 确定当前创建的主分区编号,因为该磁盘没有主分区所以编号默认为1· First sector (2048-41943039, default 2048): --> 确定分区起始位置,默认为2048· Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +5G --> 确定分区大小(+5G表示,分区大小为5G)· Command (m for help): p --> 输入p,打印分区信息· Command (m for help): wq --> 输入wq保存分区设置并退出分区模式· ls /dev | grep sd --> 查看磁盘设备,第二块磁盘果然已经添加了第一个分区sdb1
(2) 创建文件系统
- 又称分区格式化
- 文件系统有ext3、ext4,xfs等,推荐xfs
- mkfs —> 创建文件系统工具
- -t 确定创建的文件系统的类型
[root@myserver ~]# mkfs -t xfs /dev/sdb1meta-data=/dev/sdb1 isize=512 agcount=4, agsize=327680 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1data = bsize=4096 blocks=1310720, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0, ftype=1log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0---------------------------------------------------------------------------· mkfs -t xfs /dev/sdb1 为第二块磁盘的第一块分区(sdb1分区)创建xfs文件系统---------------------------------------------------------------------------[root@myserver ~]# mkfs -t ext4 /dev/sdb2mke2fs 1.45.4 (23-Sep-2019)Creating filesystem with 1572864 4k blocks and 393216 inodesFilesystem UUID: 14785859-9e9e-4a30-a3db-0dd4525f57d6Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): doneWriting superblocks and filesystem accounting information: done ---------------------------------------------------------------------------· mkfs -t ext4 /dev/sdb2 为第二块磁盘的第二块分区(sdb2分区)创建ext4文件系统
(3) 挂载
- mkdir -p /data/sdb1 —> 创建一个挂载点,就是一个文件目录
- mount /dev/sdb1 /data/sdb1 —> 将第二块磁盘的第一个分区(sdb1分区)挂载到/data/adb1目录下
- 挂载成后就可以向挂载点写数据了,这些数据会流到磁盘存储起来
[root@myserver ~]# ls /bin dev home lib64 mnt proc run srv tmp varboot etc lib media opt root sbin sys usr[root@myserver ~]# mkdir -p /data/sdb1[root@myserver ~]# ls /bin data etc lib media opt root sbin sys usrboot dev home lib64 mnt proc run srv tmp var[root@myserver ~]# mount /dev/sdb1 /data/sdb1[root@myserver ~]# df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 10M 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup/dev/mapper/cl-root 36G 4.5G 31G 13% //dev/sda1 976M 193M 716M 22% /boottmpfs 376M 1.2M 375M 1% /run/user/42tmpfs 376M 4.6M 371M 2% /run/user/0/dev/sr0 7.7G 7.7G 0 100% /run/media/root/CentOS-8-2-2004-x86_64-dvd/dev/sdb1 5.0G 68M 5.0G 2% /data/sdb1--------------------------------------------------------------------------------------· df -h --> 查看当前磁盘的状况· 磁盘名称 磁盘大小 使用空间 可用空间 使用率 挂载点
(4) 卸载
- umount 设备名/挂载点名 —> 卸载磁盘分区
- !注意,不要在挂载点目录下卸载磁盘分区(如在/data/sdb1目录下卸载/dev/sdb1),会报错
[root@myserver ~]# mount /dev/sdb1 /data/sdb1[root@myserver ~]# df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 10M 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup/dev/mapper/cl-root 36G 4.5G 31G 13% //dev/sda1 976M 193M 716M 22% /boottmpfs 376M 1.2M 375M 1% /run/user/42tmpfs 376M 4.6M 371M 2% /run/user/0/dev/sr0 7.7G 7.7G 0 100% /run/media/root/CentOS-8-2-2004-x86_64-dvd/dev/sdb1 5.0G 68M 5.0G 2% /data/sdb1[root@myserver ~]# umount /dev/sdb1[root@myserver ~]# df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 10M 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup/dev/mapper/cl-root 36G 4.5G 31G 13% //dev/sda1 976M 193M 716M 22% /boottmpfs 376M 1.2M 375M 1% /run/user/42tmpfs 376M 4.6M 371M 2% /run/user/0/dev/sr0 7.7G 7.7G 0 100% /run/media/root/CentOS-8-2-2004-x86_64-dvd--------------------------------------------------------------------------------------· 通过设备名卸载磁盘分区sdb1--------------------------------------------------------------------------------------[root@myserver ~]# mount /dev/sdb1 /data/sdb1[root@myserver ~]# df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 10M 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup/dev/mapper/cl-root 36G 4.5G 31G 13% //dev/sda1 976M 193M 716M 22% /boottmpfs 376M 1.2M 375M 1% /run/user/42tmpfs 376M 4.6M 371M 2% /run/user/0/dev/sr0 7.7G 7.7G 0 100% /run/media/root/CentOS-8-2-2004-x86_64-dvd/dev/sdb1 5.0G 68M 5.0G 2% /data/sdb1[root@myserver ~]# umount /data/sdb1[root@myserver ~]# df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 10M 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup/dev/mapper/cl-root 36G 4.5G 31G 13% //dev/sda1 976M 193M 716M 22% /boottmpfs 376M 1.2M 375M 1% /run/user/42tmpfs 376M 4.6M 371M 2% /run/user/0/dev/sr0 7.7G 7.7G 0 100% /run/media/root/CentOS-8-2-2004-x86_64-dvd--------------------------------------------------------------------------------------· 通过挂载点卸载磁盘分区sdb1
(5) 设置开机自动挂载
- 默认情况下,系统并不会开机自动挂载磁盘分区,所以需要我们手动设置
- 在/etc/fstab文件中进行设置
[root@myserver ~]# vim /etc/fstab######################################################################在/etc/fstab文件最后换一行输入:(!注意,一定不要出错,不然会导致开机失败)--------------------------------------/dev/sdb1 /data/sdb1 xfs defaults 0 0--------------------------------------磁盘分区名 挂载点 对应文件系统 默认######################################################################[root@myserver ~]# mount -av/ : ignored/boot : already mountedswap : ignored/data/sdb1 : already mounted[root@myserver ~]# reboot[root@myserver ~]# df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 11M 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup/dev/mapper/cl-root 36G 4.5G 31G 13% //dev/sdb1 5.0G 68M 5.0G 2% /data/sdb1/dev/sda1 976M 193M 716M 22% /boottmpfs 376M 1.2M 375M 1% /run/user/42tmpfs 376M 4.6M 371M 2% /run/user/0/dev/sr0 7.7G 7.7G 0 100% /run/media/root/CentOS-8-2-2004-x86_64-dvd---------------------------------------------------------------------------------------· mount -av --> 查询当前已挂载的挂载点· reboot --> 重启系统· df -h --> 重启之后查询磁盘状态,我们可以看到磁盘分区sdb1已经挂载