为了让 Linux 系统能够正常使用这块磁盘,要先对磁盘进行一些初始化工作。
先了解一下我们要使用到的 Linux 命名:
举例说明:
新增磁盘的设备文件名为 /dev/vdb 大小为60GB。
首先,要对磁盘进行格式化分区
#fdisk -l
回显
Disk /dev/vda: 50 GiB, 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
Disklabel type: dos
Disk identifier: 0x3fa1d255
Device Boot Start End Sectors Size Id Type
/dev/vda1 * 2048 104857566 104855519 50G 83 Linux
Disk /dev/vdb: 60 GiB, 64424509440 bytes, 125829120 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
可以看到,当前的服务器上有两个磁盘,一个 50G,一个 60G,50G 的是服务器自带的系统盘,60G 的就是新购买的数据盘,还没有进行过分区操作。
下面开始对数据盘进行分区操作
fdisk /dev/vdb
回显
Welcome to fdisk (util-linux 2.31.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 0x695b2bd0.
Command (m for help):
输入 n,回车新建分区
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
这里我们可以看到有两种分区类型:primary(主分区)和 extended(扩展分区),这里选择创建主分区,输入 p 回车,会提示输入一些信息
Partition number (1-4, default 1): 1
First sector (2048-125829119, default 2048):
Last sector, +sectors or +size{
K,M,G,T,P} (2048-125829119, default 125829119):
Created a new partition 1 of type 'Linux' and of size 60 GiB.
Command (m for help):
由于这个磁盘是全新的,没有任何分区,所以设置分区编号为 1,其他的为默认值,即可创建新的分区。
创建完分区后,输入 p 即可查看新创建的分区信息
Command (m for help): p
Disk /dev/vdb: 60 GiB, 64424509440 bytes, 125829120 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
Disklabel type: dos
Disk identifier: 0x695b2bd0
Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 125829119 125827072 60G 83 Linux
确认分区信息后,输入 w 回车即可将分区结果写入分区表中
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
如上,表示分区创建完成。如果之前分区操作有误,请输入 q,则会退出 fdisk 分区工具,之前的分区结果将不会被保留。
提示操作 p打印 n新增 d 删除 w操作生效 wq将表写入磁盘保存并退出
partprobe
命令可以在不重启系统的情况下重读分区表
partprobe /dev/vdb
执行以下命令,将新建分区文件系统设为系统所需格式。
# mkfs-t文件系统格式分区
mkfs.ext4 /dev/vdb1
或 mkfs -t ext4 /dev/vdb1
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 15728384 4k blocks and 3932160 inodes
Filesystem UUID: 65aa13b1-8ae4-4d69-bf3d-1e77f4cf3204
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done
格式化需要等待一段时间,请观察系统运行状态,不要退出。不同文件系统支持的分区大小不同,请根据您的业务需求选择合适的文件系统。
# 根据业务创建
mkdir /data
mount /dev/vdb1 /data
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 397M 5.9M 392M 2% /run
/dev/vda1 ext4 53G 2.6G 48G 6% /
tmpfs tmpfs 2.0G 25k 2.0G 1% /dev/shm
tmpfs tmpfs 5.3M 0 5.3M 0% /run/lock
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs tmpfs 397M 0 397M 0% /run/user/500
/dev/vdb1 ext4 64G 55M 60G 1% /data
表示新建分区 /dev/vdb1 已挂载至 /data,此时已经可以使用新增加的数据盘了。但是一旦重启云服务器,挂载就会失效,所以我们需要设置开机自动挂载磁盘。
执行如下命令,查询磁盘分区的 UUID。
# blkid 磁盘分区
blkid /dev/vdb1
/dev/vdb1: UUID="9f2d3e15-a78a-4f3d-8385-0166b4b67864" TYPE="ext4" PARTUUID="7852bx-01"
这里我们需要编辑 fstab 文件,fstab 文件包含了 Linux 系统可以挂载使用的文件系统的信息。
#!/bin/env bash
vdb=$( blkid | grep /dev/vdb1 | awk '{print $2}' | cut -d'"' -f2)
cat >> /etc/fstab <<EOF
UUID=$vdb /data ext4 defaults 1 1
EOF
mount_state=$(df -hT|head -n1;df -hT|awk '/ext4/{print $1,$0}')
echo -e "\033[47;30m $mount_state \033[0m"
参数说明如下:
- 第一列为 UUID,此处填写上面查询到的磁盘分区的 UUID。
- 第二列为磁盘分区的挂载目录,可以通过 df -TH 命令查询。
- 第三列为磁盘分区的文件系统格式, 可以通过 df -TH 命令查询。
- 第四列为磁盘分区的挂载选项,此处通常设置为defaults即可。
- 第五列为 Linux dump 备份选项。 - 0 表示不使用 Linux dump 备份。现在通常不使用 dump 备份,此处设置为 0 即可。 - 1 表示使用 Linux dump 备份。
- 第六列为 fsck 选项,即开机时是否使用 fsck 检查磁盘。 - 0表示不检验。
- 挂载点为(/)根目录的分区,此处必须填写 1。根分区设置为 1,其他分区只能从 2 开始,系统会按照数字从小到大依次检查下去。
执行如下命令,卸载已挂载的分区
umount /dev/vdb1
执行如下命令,将 /etc/fstab 文件所有内容重新加载。
mount -a
执行如下命令,查询文件系统挂载信息。
# mount | grep 挂载目录
mount | grep /data
回显类似如下信息,说明自动挂载功能生效:
/dev/vdb1 on /data type ext4 (rw,relatime,data=ordered)
到此,初始化一个新的 Linux 磁盘的工作已经完成。
参考 文章