麒麟服务器系统磁盘管理之fdisk
发布时间:2023-08-31 浏览次数:2086次 作者:湖南省计算产业生态创新中心 (长沙)
1. 对磁盘进行分区
· 前提条件:
1. 已登录服务器系统。
2. 已挂载数据盘到服务器,且该盘未初始化。
· 查看新增数据盘
root@localhost 桌面]# fdisk -l
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/sda:100 GiB,107374182400 字节,209715200 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7243b1bf
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 209715199 207616000 99G 8e Linux LVM
Disk /dev/mapper/klas-root:65.15 GiB,69948407808 字节,136617984 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/mapper/klas-swap:2.4 GiB,2193620992 字节,4284416 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/mapper/klas-backup:31.83 GiB,34154217472 字节,66707456 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
这里可以看到当前服务器上有两块盘:/dev/sda 和 /dev/sdb。sda 是系统盘,sdb 是新增数据盘,且没有进行初始化。
· 对新增数据盘进行分区
#语法:fdisk 新增数据盘名称
[root@localhost 桌面]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.35.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x18e09c4e 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):m
帮助:
DOS (MBR)
a 开关 可启动 标志
b 编辑嵌套的 BSD 磁盘标签
c 开关 dos 兼容性标志
常规
d 删除分区
F 列出未分区的空闲区
l 列出已知分区类型
n 添加新分区
p 打印分区表
t 更改分区类型
v 检查分区表
i 打印某个分区的相关信息
杂项
m 打印此菜单
u 更改 显示/记录 单位
x 更多功能(仅限专业人员)
脚本
I 从 sfdisk 脚本文件加载磁盘布局
O 将磁盘布局转储为 sfdisk 脚本文件
保存并退出
w 将分区表写入磁盘并退出
q 退出而不保存更改
新建空磁盘标签
g 新建一份 GPT 分区表
G 新建一份空 GPT (IRIX) 分区表
o 新建一份的空 DOS 分区表
s 新建一份空 Sun 分区表
命令(输入 m 获取帮助):
注意,这里 fdisk 命令默认帮我们把磁盘设置成 DOS 格式,也就是 MBR 格式,因为 fdisk 命令只支持 MBR 格式。如果想将磁盘设置成 GPT 格式,那我们就需要使用 parted 命令。
然后我们按照提示输入“m”获取帮助,可以看到上面列出了 fdisk 命令中所有的子命令。这里面很多的子命令,我们后面都会用到。
· 输入“n”,开始创建新分区。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (0 primary, 0 extended, 4 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
注意:因为磁盘已经被设成 DOS 格式了,所以只支持 4 个主分区。
这里会让我们选择新分区的类型。我们选择创建一个主分区,所以应该输入“p”。
选择 (默认 p):p
分区号 (1-4, 默认 1):
第一个扇区 (2048-41943039, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): +10G
创建了一个新分区 1,类型为“Linux”,大小为 10 GiB。
命令(输入 m 获取帮助):
分区号、起始扇区位置直接使用默认值就好,直接回车。末尾扇区这里需要我们根据自己对分区大小的需求来输入了,比如我希望分区大小为 10G,那么就输入“+10G”。
到这里,我们的分区就已经创建好了。
· 输入“p”,查看新建分区的详细信息。
命令(输入 m 获取帮助):p
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x18e09c4e
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 20973567 20971520 10G 83 Linux
命令(输入 m 获取帮助):
可以看到 /dev/sdb1 这个分区已经创建好了,大小也是我设置的 10G。
· 输入“w”,将分区结果写回磁盘分区表中。
上面我们创建的 /dev/sdb1 分区的信息其实是存在内存当中的,并没有写入磁盘分区表。所以我们还要将结果写入磁盘分区表,这样才算真正完成了磁盘分区。
如果我们在这一步发现,之前分区操作有误,那么直接输入“q”,那么会直接退出 fdisk 命令的交互模式,之前的分区结果将不会被保留。
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
[root@localhost 桌面]#
将分区结果写入磁盘分区表后,我们就会自动退出 fdisk 命令的交互模式。至此,磁盘分区完毕,如果我们还想继续分区,重复上面步骤即可。
· 再次查看新增数据盘
[root@localhost 桌面]# fdisk -l
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x18e09c4e
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 20973567 20971520 10G 83 Linux
Disk /dev/sda:100 GiB,107374182400 字节,209715200 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7243b1bf
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 209715199 207616000 99G 8e Linux LVM
Disk /dev/mapper/klas-root:65.15 GiB,69948407808 字节,136617984 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/mapper/klas-swap:2.4 GiB,2193620992 字节,4284416 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/mapper/klas-backup:31.83 GiB,34154217472 字节,66707456 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@localhost 桌面]#
我们可以看到 /dev/sdb1 这个分区已经创建好了,并且已经同步至操作系统。
2. 对磁盘分区进行格式化
完成对磁盘分区之后,我们就需要把分区文件系统格式化成我们想要的格式,比如 xfs 、 ext4 等等。
#语法:
mkfs.文件系统格式 分区名称 或者 mkfs -t 文件系统格式 分区名称
[root@localhost 桌面]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
3. 挂载磁盘分区
完成对磁盘分区的格式化之后,我们还并不能直接使用这个分区。还需要把这个分区挂载到某个目录下,这样才能正常使用。
· 创建挂载目录
语法:mkdir 挂载目录
[root@localhost 桌面]# mkdir /data
[root@localhost 桌面]#
[root@localhost 桌面]# ls /
backup bin boot box data dev etc home lib lib64 media mnt opt proc root run sbin srv sudo sys tmp usr var
· 将创建的分区挂载到我们创建的挂载目录下
语法: mount 分区名称 挂载目录
[root@localhost 桌面]# mount /dev/sdb1 /data
[root@localhost 桌面]#
[root@localhost 桌面]#
· 查看挂载结果
[root@localhost 桌面]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 442M 0 442M 0% /dev
tmpfs tmpfs 469M 16K 469M 1% /dev/shm
tmpfs tmpfs 469M 14M 456M 3% /run
tmpfs tmpfs 469M 0 469M 0% /sys/fs/cgroup
/dev/mapper/klas-root xfs 66G 9.6G 56G 15% /
tmpfs tmpfs 469M 68K 469M 1% /tmp
/dev/sda1 xfs 1014M 214M 801M 22% /boot
tmpfs tmpfs 94M 12K 94M 1% /run/user/1001
tmpfs tmpfs 94M 52K 94M 1% /run/user/0
tmpfs tmpfs 94M 0 94M 0% /run/user/992
/dev/sdb1 xfs 10G 104M 9.9G 2% /data
[root@localhost 桌面]#
最后一行可以看到,我们创建的 /dev/sdb1 这个分区已经挂载到 /data 目录下了。
4. 设置开机自动挂载
我们上面手动挂载新建分区之后,如果机器重启,那么我们又需要重新挂载一次。为了避免麻烦和保证业务的持续运行,我们可以将挂载内容写入到 /etc/fstab ,这样每次开机系统就会自动挂载我们新建的分区了。
这里我们最好不要采用在 /etc/fstab直接指定 /dev/sdb1 的方法,因为云中设备的顺序编码在关闭或者开启服务器过程中可能发生改变,例如/dev/sdb可能会变成/dev/sdc。我们推荐使用 UUID 来配置自动挂载数据盘。
· 查看磁盘分区的UUID
[root@localhost 桌面]# blkid
/dev/sdb1: UUID="81e9e293-493b-4ce8-9d35-ccd43e918b31" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="18e09c4e-01"
/dev/sda1: UUID="d176e55c-58b6-44b2-995d-de3575936f97" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="7243b1bf-01"
/dev/sda2: UUID="gTaXnQ-coMf-JnnY-CIwd-PIha-ncLj-9nUU5a" TYPE="LVM2_member" PARTUUID="7243b1bf-02"
/dev/mapper/klas-root: UUID="d5cb49ee-0f67-44ad-9c7d-b08e3a307a87" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/klas-swap: UUID="d8bff809-ed34-4e7a-aadb-dc89f801c1a7" TYPE="swap"
/dev/mapper/klas-backup: LABEL="KYLIN-BACKUP" UUID="1e5acd36-f27e-4390-8436-60b30cee1952" BLOCK_SIZE="512" TYPE="xfs"
[root@localhost 桌面]#
第一行就是我们创建的分区了。
· 编辑 /etc/fstab
vim /etc/fstab
· 按“i”进入编辑模式,然后将光标移动到末尾,添加以下内容。
UUID=81e9e293-493b-4ce8-9d35-ccd43e918b31 /data xfs defaults 0 0
按“esc”,然后输入”:wq“,最后回车。