1. 准备
Linux 系统中可以使用 df 指令来查看磁盘使用情况,但是在使用阿里云 ECS 服务器以来一直不明白,为什么除了系统盘外,数据盘不能通过 df 指令查看到,如下:
[root@iZwz95t0ep1zjmo9sh8nq0Z java]# df -lha
后来才知道,数据盘是需要进行分区,格式化,并挂载后才能使用的,否则使用 df 指令是看不到的,不过可以使用 fdisk 指令查看到有哪些硬盘,如下:
[root@iZwz95t0ep1zjmo9sh8nq0Z java]# fdisk -l
可以看到磁盘 /dev/vda 40G(42.9G)已经分区成 /dev/vda1,而磁盘 /dev/vdb 20G(21.5G)并没有分区;
2. 数据盘分区
现在开始将数据盘 vdb 进行分区并挂载,进入 fdisk 命令,如下:
[root@iZwz95t0ep1zjmo9sh8nq0Z home]# fdisk /dev/vdb
使用命令 fdisk /dev/vdb 进入 fdisk 命令后,输入 m 可以查看到帮助信息;
从帮助信息可以看到,输入 n 进行分区,如下:
输入 p 即分为主分区,输入 e 即分为逻辑分区。
注:一开始以为只有系统盘才能分为主分区,其他盘要分为逻辑分区,所以这里选择了输入 e,但是后来才发现,这样会有问题的,如下:
后来在网上看到说出现这样的问题是因为在格式化一个扩展分区(Extended),按照输入 e 的方式完成分区后,再输入 fdisk -l 指令,看到分好的 /dev/vdb1 分区的 System 确实是 Extended,如下:
所以最后没办法只能将 /dev/vdb1 分区先删除,再重新进行分区的操作;具体删除分区的办法,看下面的内容。
所以,在选择分区类型的时候,还是要输入 p,分为主分区,如下:
Partition number 不确定是什么,按网上的说法,选择默认的 1,表示只分一个区;然后 First sector 是设置起始字节,Last sector 是设置结束字节,如果只设置一个分区,在这两个地方只需要直接回车即可;如果想要分多个分区,在设置 Last sector 的时候需要输入分区的大小,具体要怎么输入字节大小,可以看提示,或者到时候再上网查资料。这里先只分一个分区,在 First sector 和 Last sector 设置的时候都直接回车,如下:
完成后,可以看到后面有一句话“Partition 1 of type Linux and of size 20 GiB is set”,说明分区1 是 Linux 类型,并且大小是 20G。
然后输入 wq 保存退出即可,如下:
然后再使用 fdisk -l 命令查看,可以看到 /dev/vdb1 分区了,如下:
3. 删除分区
如果上面的分区分得不理想,想要重新进行分区,要先删除分区;
删除的办法根据 fdisk 命令的帮助信息知道使用 fdisk 命令中的 d,如下:
然后再用 fdisk -l 命令查看,发现 /dev/vdb1 分区的信息已经不见了,如下:
4. 格式化分区
分好区之后,格式化分区使用如下命令:
[root@iZwz95t0ep1zjmo9sh8nq0Z home]# mkfs.ext4 /dev/vdb1
mkfs.ext4 是文件系统的格式,mkfs 相关的除了 ext4,还有其他如下:
[root@iZwz95t0ep1zjmo9sh8nq0Z home]# mkfs.
mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.minix mkfs.xfs
这里按网上的说明,选择 mkfs.ext4 文件系统进行格式化;
注:如果在进行分区的时候,选择分区类型时输入的是 e,即 Extended(扩展分区),是会出问题的,具体问题看上面。
5. 挂载和取消挂载数据盘
数据盘分区、格式化后,还需要进行挂载才能使用,使用 mount 命令挂载,如下:
[root@iZwz95t0ep1zjmo9sh8nq0Z home]# mkdir /mdata
[root@iZwz95t0ep1zjmo9sh8nq0Z home]# mount /dev/vdb1 /mdata/
[root@iZwz95t0ep1zjmo9sh8nq0Z home]#
没有出现任何错误提示,说明挂载已经成功了,这里为了不占用其他系统盘,在根目录下先创建一个 /mdata 的目录,用来作为挂载的路径。
这时候再用 df -lha 命令来查看,就可以看到磁盘 /dev/vdb1 了,如下:
如果想要取消挂载,比如想要再次对磁盘进行格式化,需要先取消挂载后再进行格式化,取消挂载的命令如下:
[root@iZwz95t0ep1zjmo9sh8nq0Z home]# umount /dev/vdb1
[root@iZwz95t0ep1zjmo9sh8nq0Z home]#
没有出现任何错误提示,说明取消挂载已经成功了。
6. 系统重启自动挂载分区
如果想每次系统重启都能自动挂载分区,可以修改 /etc/fstab 文件,在最后加一段 /dev/vdb1 /mdata/ ext4 defaults 1 2,如下:
其中,“/dev/vdb1”是指定挂载的是哪个分区;“/mdata/”是指定挂载的路径;“ext4”是该分区的格式;“defaults”是挂载时所要设定的参数(只读,读写,启用quota等),输入defaults包括的参数有(rw、dev、exec、auto、nouser、async);“1”是指使用 dump 是否要记录,0 是不要;“2”是指定开机稽查的顺序,是 boot 系统文件就为 1,其他文件系统都为 2,如不要检查就为 0。