⑴RedHat是非常流行的一款Linux系统,RedHat包括其他Linux系统都可以用fdisk命令对磁盘进行重新分区。某些情况下fdisk命令无法使用全部的分区,这是怎么回事呢?
⑵Linux在RedHat上原有四个主分区,分别为sda,sda,sda,sda,其中sda为主分区,M,后面三个主分区共G,后三个主分区为lvm,目前磁盘空间紧张,由于linux只能划分四个主分区,目前四个主分区已经全部占用了,如果直接删除会导致数据丢失,还好前期分区时做的lvm,为了拓展/dev/rhel/root根分区的空间,/dev/sda空间最小,使用pvmove命令,将/dev/sda里的数据全部移到/dev/sda,然后将/dev/sda 移除:
⑶pvmove /dev/sda /dev/sda
⑷pvremove /dev/sda
⑸Device Boot Start End Blocks Id System
⑹/dev/sda * Linux
⑺/dev/sda e Linux LVM
⑻/dev/sda e Linux LVM
⑼移动完成后,系统空出M空间,在vmware中扩展硬盘空间到G,使用partprobe /dev/sda,使用fdisk -l查看硬盘空间,已经显示为.G。
⑽Disk /dev/sda: . GB, bytes, sectors
⑾Units = sectors of * = bytes
⑿Sector size (logical/physical: bytes / bytes
⒀I/O size (minimum/optimal: bytes / bytes
⒁Disk label type: dos
⒂Disk identifier: xc
⒃接着使用fdisk /dev/sda添加扩展分区,使用n,选择扩展分区,初始块直接回车,结束块时,不能输入这个结束扇区,只能输入以前系统默认提供的M空间,重启后问题依旧,无法识别后加的G空间,怀疑问题是因为这个分区是在中间,无法与后续行成连续分区
⒄使用parted工具进行分区
⒅[rootserver ~]# parted
⒆GNU Parted .
⒇Using /dev/sda
⒈Wele to GNU Parted! Type ‘help’ to view a list of mands.
⒉(parted help
⒊align-check TYPE N check partition N for TYPE(min|opt alignment
⒋help [MAND] print general help, or help on MAND
⒌mklabel,mktable LABEL-TYPE create a new disklabel (partition table
⒍mkpart PART-TYPE [FS-TYPE] START END make a partition
⒎name NUMBER NAME name partition 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 exit program
⒒rescue START END rescue a lost partition near START and END
⒓rm NUMBER delete partition NUMBER
⒔select DEVICE choose the device to edit
⒕disk_set FLAG STATE change the FLAG on selected device
⒖disk_toggle [FLAG] toggle the state of FLAG on selected device
⒗set NUMBER FLAG STATE change the FLAG on partition NUMBER
⒘toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
⒙unit UNIT set the default unit to UNIT
⒚version display the version number and copyright information of GNU Parted
⒛(parted
①使用命令print list,看到结束分区为.G,使用命令mkpart extended ,输入起始分区G,输入结束分区G,使用partprobe /dev/sda更新分区表
②使用命令cat /proc/partitions查看是否新增扩展分区/dev/sda
③使用fdisk /dev/sda进行分区,新增G空间进来/dev/sda
④Device Boot Start End Blocks Id System
⑤/dev/sda * Linux
⑥/dev/sda e Linux LVM
⑦/dev/sda f W Ext‘d (LBA
⑧/dev/sda e Linux LVM
⑨/dev/sda Linux
⑩接下来使用pvcreate /dev/sda新增pv
Ⅰ使用vgextend rhel /dev/sda扩展vg
Ⅱvgextend rhel /dev/sda
Ⅲ使用lvextend扩展根分区大小,从/dev/sda中划分空间
Ⅳlvextend -L +G /dev/rhel/root /dev/sda
Ⅴ使用系统自带的xfs_info查看扇区信息,可以看到每个块为KB,将G换算成块为,加上原有的就是
Ⅵxfs_growfs -D /dev/mapper/rhel-root
Ⅶ再使用命令df -h查看挂载情况
Ⅷ[rootserver ~]# df -h
ⅨFilesystem Size Used Avail Use% Mounted on
Ⅹ/dev/mapper/rhel-root G M G % /
㈠devtmpfs M M % /dev
㈡tmpfs M K M % /dev/shm
㈢tmpfs M .M M % /run
㈣tmpfs M M % /sys/fs/cgroup
㈤/dev/mapper/rhel-usr .G .G M % /usr
㈥/dev/mapper/rhel-home .G M .G % /home
㈦/dev/mapper/rhel-var .G M .G % /var
㈧/dev/sda M M M % /boot
㈨根目录已经扩展到G,后续如果新增可以从扩展分区中新增分区,再按此操作方法增回。
㈩如果fdisk命令无法使用RedHat的所有分区,那么对RedHat进行重新分区就失去了意义,使用上面的方法就可以让fdisk命令使用全部的四个分区。