课堂上,讲师演示了给服务器上新添加的硬盘用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。

在“编辑虚拟机设置”中,添加硬盘。

wKiom1cWAkTiy-r3AAF-ApjxNpM574.png

保持默认选择,下一步

wKioL1cWAz3zfytFAABJcADP93k075.png


创建新磁盘,下一步

wKioL1cWAz6BIENHAABLzTonHm8552.png


指定大小20G,选择多文件模式

wKioL1cYoxfBl3CFAABSYl1aFiU635.png


指定磁盘名称,完成

wKioL1cWAz7QQC1nAABQiYKtYns421.png


创建新磁盘后,启动虚拟机

查看当前挂载情况

[root@xuegod60 ~]# 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

[root@xuegod60 ~]#


查看分区情况

wKioL1cYo7fwl-wnAABExNVrRbs880.png


现在开始用parted在新硬盘sdb上作第一个2G的分区doc

[root@xuegod60 ~]# 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)                                                       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上的分区列

[root@xuegod60~]# ls /dev/sdb*

/dev/sdb  /dev/sdb1

格式化分区sdb1

[root@xuegod60~]# 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

创建挂在点

[root@xuegod60 ~]# mkdir /sdb1

查询分区sdb2UUID

[root@xuegod60 ~]# blkid |grep sdb1

/dev/sdb1: UUID="60ee87ff-5b3b-4506-8272-237798728926"TYPE="xfs" PARTLABEL="doc"PARTUUID="489cd210-44ab-4dfe-adbd-3840a4a8b345"

编辑fstab实现开机自动挂载

[root@xuegod60 ~]# echo 'UUID="60ee87ff-5b3b-4506-8272-237798728926" /sdb1 xfsdefaults 0 0' >> /etc/fstab

验证挂载

[root@xuegod60 ~]# mount -a

[root@xuegod60~]# 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

[root@xuegod60 ~]#

到这里,新硬盘sdb上的第一个分区就已经做好了

接下来,开始用parted在sdb上创建第二个分区

[root@xuegod60 ~]# 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是一次性的吗?

向朋友求助,回答是“继续分!”

这里都报错了,还让我继续分,怎么分啊。


然后我做了个尝试,跳过作标签,直接从指定分区开始

[root@xuegod60 ~]# 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上的分区】

[root@xuegod60 ~]# ls /dev/sdb*

/dev/sdb  /dev/sdb1  /dev/sdb2  /dev/sdb3

【格式化刚创建的2个分区】

[root@xuegod60 ~]# 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

[root@xuegod60 ~]# 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

【创建挂载点】

[root@xuegod60 ~]# mkdir /sdb2

[root@xuegod60 ~]# mkdir /sdb3

【查询新分区UUID】

[root@xuegod60 ~]# 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" 

【设置新分区的自动挂载】

[root@xuegod60 ~]# echo 'UUID="dc653b1f-6424-4245-b634-3d4e28c43b23" /sdb2 xfs defaults 0 0'>>/etc/fstab

[root@xuegod60 ~]# echo 'UUID="fb915d50-7428-4581-8784-3bbab18d0fe1" /sdb3 xfs defaults 0 0'>>/etc/fstab


【查看目前设备挂载情况】

[root@xuegod60 ~]# 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

[root@xuegod60 ~]#

此时,新分区并未挂载

【手动挂载】

[root@xuegod60 ~]# mount -a

【再次查看设备挂载情况】

[root@xuegod60 ~]# 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直接开始分区。