麒麟服务器系统磁盘管理之parted
发布时间:2023-08-31 浏览次数:2997次 作者:湖南省计算产业生态创新中心 (长沙)
1. 对磁盘进行分区
· 前提条件
1. 已登录服务器系统。
2. 已挂载数据盘到服务器,且该盘未初始化。
· 查看新增数据盘
[root@localhost 桌面]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─klas-root 253:0 0 65.1G 0 lvm /
├─klas-swap 253:1 0 2G 0 lvm [SWAP]
└─klas-backup 253:2 0 31.8G 0 lvm
sdb 8:16 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
[root@localhost 桌面]#
可以看到当前服务器上有两块盘:/dev/sda 和 /dev/sdb。sda 是系统盘,sdb 是新增数据盘。
· 对新增数据盘进行分区
语法:
parted 新增数据盘名称
[root@localhost 桌面]# parted /dev/sdb
GNU Parted 3.3
使用 /dev/sdb
欢迎使用 GNU Parted!输入 'help' 来查看命令列表。
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] 打印通用求助信息,或 COMMAND 的帮助
mklabel,mktable LABEL-TYPE 创建新的磁盘卷标 (分区表)
mkpart 分区类型 [文件系统类型] 起始点 结束点 创建一个分区
name 编号 名称 将指定“编号”的分区命名为“名称”
print [devices|free|list,all|数字] 显示分区表、可用设备、剩余空间、所有分区或特殊分区
quit 退出程序
rescue 起始点 终止点 挽救临近“起始点”、“终止点”的遗失的分区
resizepart NUMBER END 改变 NUMBER 的大小
rm NUMBER 删除编号为 NUMBER 的分区
select 设备 选择要编辑的设备
disk_set 旗标 状态 变更已选设备上的旗标
disk_toggle [旗标] 切换已选设备上的旗标状态
set 编号 旗标 状态 改变指定“编号”分区的旗标
toggle [编号 [旗标]] 切换“编号”分区上的“旗标”状态
unit 单位 设置缺省的“单位”
version 显示目前 GNU Parted 的版本与版权信息
(parted)
然后我们按照提示输入“help”获取帮助,可以看到上面列出了 parted 命令中所有的子命令。这里面很多的子命令,我们后面都会用到。
· 查看当前磁盘分区形式
(parted) print
错误: /dev/sdb: 无法辨识的磁盘卷标
型号:VMware, VMware Virtual S (scsi)
磁盘 /dev/sdb:21.5GB
扇区大小 (逻辑/物理):512B/512B
分区表:unknown
磁盘标志:
“分区表”为“unknown”表示磁盘分区形式未知。
· 设置磁盘分区形式。
磁盘分区形式有 MBR 和 GPT 两种,这里我们设置成 GPT 格式。
(parted) mklabel gpt
(parted)
· 查看磁盘分区形式
(parted) print
型号:VMware, VMware Virtual S (scsi)
磁盘 /dev/sdb:21.5GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:
编号 起始点 结束点 大小 文件系统 名称 标志
可以看到,磁盘分区形式已经是 GPT 格式了。
· 创建分区
(parted) mkpart
分区名称? []?
文件系统类型? [ext2]? xfs
起始点? 0G
结束点? 10G
(parted)
(parted)
分区名称:可不填,直接回车。
文件系统类型:可根据需要自行修改,我这里选择了 xfs 格式。
起始点:0G 表示从头部开始。
结束点:填入你想设置的分区大小,我这里设置的是 10G 。
· 查看新建分区的详细信息
(parted) print
型号:VMware, VMware Virtual S (scsi)
磁盘 /dev/sdb:21.5GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:
编号 起始点 结束点 大小 文件系统 名称 标志
1 1049kB 10.0GB 9999MB xfs
(parted)
可以看到 /dev/sdb1 分区已经创建好了。
· 退出 parted 交互模式。
(parted)
(parted)
(parted) quit
信息: 你可能需要 /etc/fstab。
[root@localhost 桌面]#
parted 是直接将分区信息写到磁盘分区表中的,所以这里不需要像 fdisk 一样手动写回,直接退出就可以了。至此,磁盘分区完毕,如果我们还想继续分区,重复上面步骤即可。
· 再次查看磁盘分区信息
[root@localhost 桌面]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─klas-root 253:0 0 65.1G 0 lvm /
├─klas-swap 253:1 0 2G 0 lvm [SWAP]
└─klas-backup 253:2 0 31.8G 0 lvm
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 9.3G 0 part
sr0 11:0 1 1024M 0 rom
可以查看到新建分区 /dev/sdb1 。
其实我们还可以通过非交互式的单条命令来创建分区
语法:
parted [Disk Name] [mklabel] [LABEL-TYPE]
parted [Disk Name] [mkpart] [Partition Type] [Filesystem Type] [Partition Start Size] [Partition End Size]
[root@localhost 桌面]# parted /dev/sdc mklabel gpt
[root@localhost 桌面]#
[root@localhost 桌面]# parted /dev/sdc mkpart xfs 0GB 10GB
信息: 你可能需要 /etc/fstab。
[root@localhost 桌面]#
2. 对磁盘分区进行格式化
完成对磁盘分区之后,我们就需要把分区文件系统格式化成我们想要的格式,比如 xfs 、 ext4 等等。
#语法:
mkfs.文件系统格式 分区名称 或者 mkfs -t 文件系统格式 分区名称
[root@localhost 桌面]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=610304 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=2441216, 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
[root@localhost 桌面]#
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 12K 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 60K 469M 1% /tmp
/dev/sda1 xfs 1014M 214M 801M 22% /boot
tmpfs tmpfs 94M 40K 94M 1% /run/user/0
/dev/sdb1 xfs 9.4G 99M 9.3G 2% /data
[root@localhost 桌面]#
最后一行可以看到,我们创建的 /dev/sdb1 这个分区已经挂载到 /data 目录下了。
4. 设置开机自动挂载
我们上面手动挂载新建分区之后,如果机器重启,那么我们又需要重新挂载一次。为了避免麻烦和保证业务的持续运行,我们可以将挂载内容写入到 /etc/fstab ,这样每次开机系统就会自动挂载我们新建的分区了。
这里我们最好不要采用在 /etc/fstab直接指定 /dev/sdb1 的方法,因为云中设备的顺序编码在关闭或者开启服务器过程中可能发生改变,例如/dev/sdb可能会变成/dev/sdc。我们推荐使用 UUID 来配置自动挂载数据盘。
· 查看磁盘分区的UUID
[root@localhost 桌面]# blkid
/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/sdb1: UUID="518d9bca-54c3-40d8-8936-e80877587a72" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="bb161840-fc62-4d0a-a6ff-7f89b9c881f3"
/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=518d9bca-54c3-40d8-8936-e80877587a72 /data xfs defaults 0 0
按“esc”,然后输入”:wq“,最后回车。