课堂上,讲师演示了给服务器上新添加的硬盘用parted分区,说parted有这么这么多功能,那么那么灵活的设置。然后就想课后实践一下,看看如何用parted给硬盘分区,到底比fdisk好在哪里。
【实验环境】
实验工具: WMware station 12
OS: RHEL 7.2 x64
内存: 2G
CPU: 1核
硬盘: sda 40G
sda1 /boot 524M
sda2 / 23.6G
sda3 swap 1073M
CD/DVD: 已挂载镜像rhel7.2
网络适配器: 桥接、复制物理网卡连接状态
首先,在服务器关闭状态下添加新硬盘20G。
在“编辑虚拟机设置”中,添加硬盘。
保持默认选择,下一步
创建新磁盘,下一步
指定大小20G,选择多文件模式
指定磁盘名称,完成
创建新磁盘后,启动虚拟机
查看当前挂载情况
[[email protected] ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 20G 3.9G 17G 20% /
devtmpfs 474M 0 474M 0% /dev
tmpfs 489M 144K 489M 1% /dev/shm
tmpfs 489M 7.0M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sr0 3.8G 3.8G 0 100% /mnt
/dev/sda1 497M 140M 357M 29% /boot
tmpfs 98M 16K 98M 1% /run/user/0
[[email protected] ~]#
查看分区情况
【现在开始用parted在新硬盘sdb上作第一个2G的分区doc】
[[email protected] ~]# parted /dev/sdb GNU Parted 3.1 使用 /dev/sdb Welcome to GNU Parted! Type ‘help‘ to view a listof commands. (parted) help align-checkTYPE N checkpartition N for TYPE(min|opt) alignment help[COMMAND] printgeneral help, or help on COMMAND mklabel,mktable LABEL-TYPE create a new disklabel (partition table) mkpartPART-TYPE [FS-TYPE] START END make apartition name NUMBERNAME namepartition NUMBER as NAME print[devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition quit exitprogram rescueSTART END rescuea lost partition near START andEND rmNUMBER delete partition NUMBER selectDEVICE choosethe device to edit disk_setFLAG STATE changethe FLAG on selected device disk_toggle[FLAG] toggle thestate of FLAG on selected device set NUMBERFLAG STATE change theFLAG on partition NUMBER toggle[NUMBER [FLAG]] togglethe state of FLAG on partition NUMBER unitUNIT setthe default unit to UNIT version display the version number and copyright information of GNU Parted (parted)mklabel 新的磁盘标签类型? gpt (parted) mkpart 分区名称? []?doc 文件系统类型? [ext2]? #选择默认 起始点? 1 结束点? 2G (parted) p Model:VMware, VMware Virtual S (scsi) Disk/dev/sdb: 10.7GB Sector size(logical/physical): 512B/512B PartitionTable: gpt Disk Flags: Number Start End Size File system Name 标志 1 1049kB 2000MB 1999MB doc (parted) q 信息: You may need to update/etc/fstab. |
【查看硬盘sdb上的分区列表】
[[email protected]~]# ls /dev/sdb* /dev/sdb /dev/sdb1 |
【格式化分区sdb1】
[[email protected]~]# mkfs.xfs /dev/sdb1 meta-data=/dev/sdb1 isize=256 agcount=4,agsize=121984 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=487936, imaxpct=25 = sunit=0 swidth=0blks naming =version2 bsize=4096 ascii-ci=0 ftype=0 log =internallog bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 |
【创建挂在点】
[[email protected] ~]# mkdir /sdb1 |
【查询分区sdb2的UUID】
[[email protected] ~]# blkid |grep sdb1 /dev/sdb1: UUID="60ee87ff-5b3b-4506-8272-237798728926"TYPE="xfs" PARTLABEL="doc"PARTUUID="489cd210-44ab-4dfe-adbd-3840a4a8b345" |
【编辑fstab实现开机自动挂载】
[[email protected] ~]# echo ‘UUID="60ee87ff-5b3b-4506-8272-237798728926" /sdb1 xfsdefaults 0 0‘ >> /etc/fstab |
【验证挂载】
[[email protected] ~]# mount -a [[email protected]~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/mapper/rhel-root 20961280 4010144 16951136 20% / devtmpfs 485132 0 485132 0% /dev tmpfs 500668 144 500524 1% /dev/shm tmpfs 500668 7148 493520 2% /run tmpfs 500668 0 500668 0% /sys/fs/cgroup /dev/sr0 3947824 3947824 0 100% /mnt /dev/sda1 508588 143092 365496 29% /boot tmpfs 100136 12 100124 1% /run/user/0 /dev/sdb1 1941504 32928 1908576 2% /sdb1 [[email protected] ~]# |
到这里,新硬盘sdb上的第一个分区就已经做好了
接下来,开始用parted在sdb上创建第二个分区
[[email protected] ~]# parted /dev/sdb GNU Parted 3.1 使用 /dev/sdb Welcome to GNU Parted! Type ‘help‘ to view a list of commands. (parted)mklabel 新的磁盘标签类型? gpt 警告: 正在使用 /dev/sdb 上的分区。 忽略/Ignore/放弃/Cancel? cancel |
哎,这里怎么会警告呢?
难道parted不能分区了?退出了上次分区程序就不能继续分区了?parted是一次性的吗?
向朋友求助,回答是“继续分!”
这里都报错了,还让我继续分,怎么分啊。
然后我做了个尝试,跳过作标签,直接从指定分区开始
[[email protected] ~]# parted /dev/sdb GNU Parted 3.1 使用 /dev/sdb Welcome to GNU Parted! Type ‘help‘ to view a list of commands. (parted) mkpart 分区名称? []? software 文件系统类型? [ext2]? #选择默认 起始点? 起始点? 2G 结束点? 4G (parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 10.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 标志 1 1049kB 2000MB 1999MB xfs doc 2 2000MB 4000MB 2001MB software (parted) mkpart 分区名称? []? game 文件系统类型? [ext2]? 起始点? 4G 结束点? 3G 错误: Can‘t have the end before the start! (start sector=7812500 length=-1953124) (parted) mkpart 分区名称? []? game 文件系统类型? [ext2]? #选择默认 起始点? 3G 结束点? 6G 警告: You requested a partition from 3000MB to 6000MB (sectors 5859375..11718750). The closest location we can manage is 4000MB to 6000MB (sectors 7813120..11718750). Is this still acceptable to you? 是/Yes/否/No? no (parted) mkpart 分区名称? []? game 文件系统类型? [ext2]? #选择默认 起始点? 4G 结束点? 8G (parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 10.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 标志 1 1049kB 2000MB 1999MB xfs doc 2 2000MB 4000MB 2001MB software 3 4000MB 8000MB 3999MB game (parted) quit 信息: You may need to update /etc/fstab. |
【查看硬盘sdb上的分区】
[[email protected] ~]# ls /dev/sdb* /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3 |
【格式化刚创建的2个分区】
[[email protected] ~]# mkfs.xfs /dev/sdb2 meta-data=/dev/sdb2 isize=256 agcount=4, agsize=122112 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=488448, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 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 [[email protected] ~]# mkfs.xfs /dev/sdb3 meta-data=/dev/sdb3 isize=256 agcount=4, agsize=244096 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=976384, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 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 |
【创建挂载点】
[[email protected] ~]# mkdir /sdb2 [[email protected] ~]# mkdir /sdb3 |
【查询新分区UUID】
[[email protected] ~]# blkid |grep sdb /dev/sdb1: UUID="60ee87ff-5b3b-4506-8272-237798728926" TYPE="xfs" PARTLABEL="doc" PARTUUID="489cd210-44ab-4dfe-adbd-3840a4a8b345" /dev/sdb2: UUID="dc653b1f-6424-4245-b634-3d4e28c43b23" TYPE="xfs" PARTLABEL="software" PARTUUID="9c99bc45-458b-4f77-ba70-8805cb766313" /dev/sdb3: UUID="fb915d50-7428-4581-8784-3bbab18d0fe1" TYPE="xfs" PARTLABEL="game" PARTUUID="065aa057-51d4-4688-93b3-41d39dd3650a" |
【设置新分区的自动挂载】
[[email protected] ~]# echo ‘UUID="dc653b1f-6424-4245-b634-3d4e28c43b23" /sdb2 xfs defaults 0 0‘>>/etc/fstab [[email protected] ~]# echo ‘UUID="fb915d50-7428-4581-8784-3bbab18d0fe1" /sdb3 xfs defaults 0 0‘>>/etc/fstab |
【查看目前设备挂载情况】
[[email protected] ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/rhel-root 20G 3.9G 17G 20% / devtmpfs 474M 0 474M 0% /dev tmpfs 489M 144K 489M 1% /dev/shm tmpfs 489M 7.0M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sr0 3.8G 3.8G 0 100% /mnt /dev/sda1 497M 140M 357M 29% /boot tmpfs 98M 16K 98M 1% /run/user/0 /dev/sdb1 1.9G 33M 1.9G 2% /sdb1 [[email protected] ~]# |
此时,新分区并未挂载
【手动挂载】
[[email protected] ~]# mount -a |
【再次查看设备挂载情况】
[[email protected] ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/rhel-root 20G 3.9G 17G 20% / devtmpfs 474M 0 474M 0% /dev tmpfs 489M 144K 489M 1% /dev/shm tmpfs 489M 7.0M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sr0 3.8G 3.8G 0 100% /mnt /dev/sda1 497M 140M 357M 29% /boot tmpfs 98M 16K 98M 1% /run/user/0 /dev/sdb1 1.9G 33M 1.9G 2% /sdb1 /dev/sdb2 1.9G 33M 1.9G 2% /sdb2 /dev/sdb3 3.8G 33M 3.7G 1% /sdb3 |
这次可以了,parted新建分区终于成功了!
可能一开始是我误解了,操作有不妥。
正确的操作也应该就是用mkpart直接开始分区。