Linux实战系列(1) —— Kylin Server V11 双系统热操作扩容

说明

  1. 系统
    • 双系统:Windows10 + 银河麒麟高级服务器操作系统 V11
    • 双引导:银河麒麟V11优先级高于Windows10
  2. 目的
    移除Windows系统占用的磁盘空间,给银河麒麟V11扩容根目录大小。
    因为需要热操作,所以Windows的引导选项不会删除,只是选择的时候会报错。
  3. 步骤
    1. 移除Windows分区的挂载
    2. 删除Windows相关分区(除了公共引导分区),获得连续的空闲空间
    3. 将连续的空闲空间创建一个分区
    4. 将新建分区和当前的根分区合并(需要根分区是LVM逻辑卷,这样才能实现跨物理分区合并)
  4. 警告
    • 文中的 nvme0n1 是示例磁盘,nvme0n1p1 等等是示例分区,具体的值需要看具体的磁盘情况进行处理,不能完全照搬。
    • XFS 文件系统只支持扩大,不支持缩小。所以在分配空间时,建议按需分配,不要一次性全部分配完,以便未来有更灵活的调整余地。

删除Windows分区,获得空闲空间

  1. 检查磁盘分区情况:lsblk
    NAME          MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
    nvme0n1       259:0    0   1.9T  0 disk
    ├─nvme0n1p1   259:1    0   100M  0 part /boot/efi
    ├─nvme0n1p2   259:2    0    16M  0 part
    ├─nvme0n1p3   259:3    0 199.2G  0 part /run/media/root/8E6483276483115F
    ├─nvme0n1p4   259:4    0   814M  0 part
    ├─nvme0n1p5   259:5    0 483.6G  0 part /run/media/root/1EE8A168E8A13EC1
    ├─nvme0n1p6   259:6    0     1G  0 part /boot
    ├─nvme0n1p7   259:7    0   200G  0 part /run/media/root/8A3708C07CA77CE2
    └─nvme0n1p8   259:8    0  1023G  0 part
      ├─klas-root 253:0    0  1019G  0 lvm  /
      └─klas-swap 253:1    0     4G  0 lvm  [SWAP]
    
    这里解释一下名词
    • NAME:设备名称
    • MAJ:MIN:主设备号:次设备号
    • RM:是否可移动;
      • 0:不可移动(如内置硬盘)
      • 1:可移动设备(如 U盘、光驱)
    • SIZE:容量大小
    • RO:是否只读
      • 0:可读写
      • 1:只读
    • TYPE:设备类型
      • disk:整块物理磁盘
      • part:磁盘上的物理分区
      • lvm:LVM 逻辑卷
      • crypt:加密设备
      • rom:只读存储器
    • MOUNTPOINTS:挂载点,该设备在 Linux 文件系统树中的访问路径
  2. 根据磁盘分区情况可以判断出有关windows的分区如下(不确定的可以看下一步,有更明确的提示,这里是为了取消对Windows磁盘的自动挂载)
    • nvme0n1p2:Windows 专用的保留分区
    • nvme0n1p3:Windows 磁盘分区
    • nvme0n1p4:Windows 恢复分区
    • nvme0n1p5:Windows 磁盘分区
    • nvme0n1p7:Windows 磁盘分区
  3. 因为nvme0n1p3、nvme0n1p5、nvme0n1p7被自动挂载了,所以需要用umount命令手动取消挂载。
    umount /run/media/root/8E6483276483115F
    umount /run/media/root/1EE8A168E8A13EC1
    umount /run/media/root/8A3708C07CA77CE2
    
  4. 进入parted工具执行磁盘分区处理:parted /dev/nvme0n1
    GNU Parted 3.6
    使用 /dev/nvme0n1
    欢迎使用 GNU Parted!输入 'help' 来查看命令列表。
    
  5. 输入print命令,分析磁盘分区,这里的编号1~8就对应着lsblk中NAME的n几;也就是从这能看到2是Windows系统的MSR保留分区,3、4、5、6是Windows的NTFS文件系统格式。这里需要注意Linux的/boot分区(6)格式是XFS,根分区(8)的类型是LVM逻辑卷。
    (parted) print
    型号:ZHITAI TiPlus7100 2TB (nvme)
    磁盘 /dev/nvme0n1:2048GB
    扇区大小 (逻辑/物理):512B/512B
    分区表:gpt
    磁盘标志:
    
    编号   起始点   结束点   大小    文件系统    名称                          标志
     1    1049kB  106MB   105MB   fat32     EFI System Partition          启动, esp, no_automount
     2    106MB   123MB   16.8MB            Microsoft reserved partition  msftres, no_automount
     3    123MB   214GB   214GB   ntfs      Basic data partition          msftdata
     4    214GB   215GB   854MB   ntfs                                    隐藏, 诊断, no_automount
     7    215GB   430GB   215GB   ntfs      Basic data partition          msftdata
     5    430GB   949GB   519GB   ntfs      Basic data partition          msftdata
     6    949GB   950GB   1074MB  xfs
     8    950GB   2048GB  1098GB                                          lvm
    
  6. 根据上面的检查,需要删除的分区是2、3、4、5、7,依次执行rm命令。
    (parted) rm 2
    (parted) rm 3
    (parted) rm 4
    (parted) rm 5
    (parted) rm 7
    
  7. 再次检查分区情况:print
    (parted) print
    型号:ZHITAI TiPlus7100 2TB (nvme)
    磁盘 /dev/nvme0n1:2048GB
    扇区大小 (逻辑/物理):512B/512B
    分区表:gpt
    磁盘标志:
    
    编号   起始点   结束点   大小    文件系统   名称                   标志
     1    1049kB  106MB   105MB   fat32     EFI System Partition  启动, esp, no_automount
     6    949GB   950GB   1074MB  xfs
     8    950GB   2048GB  1098GB                                  lvm
    
  8. 退出parted:quit

创建分区

  1. 使用fdisk工具处理:fdisk /dev/nvme0n1
    [root@Kylin ~]# fdisk /dev/nvme0n1
    
    欢迎使用 fdisk (util-linux 2.39.1)。
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
    
    该磁盘目前正在使用 - 不建议您重新分区。
    推荐您卸载此磁盘上所有的文件系统,并关闭(swapoff)上面的交换分区。
    
    命令(输入 m 获取帮助):
    
  2. 新建分区,输入:n,然后一直按回车键就可以将刚才空闲出的连续空闲空间创建成一个新分区。
    命令(输入 m 获取帮助):n
    分区号 (2-5,7,9-128, 默认  2):
    第一个扇区 (206848-4000797326, 默认 206848):
    最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (206848-1853315071, 默认 1853315071):
    
    创建了一个新分区 2,类型为“Linux filesystem”,大小为 883.6 GiB。
    
  3. 完成分区创建以后,需要调整分区文件系统类型,输入:t
    命令(输入 m 获取帮助):t
    
  4. 选择刚刚创建的新分区:2
    分区号 (1,2,6,8, 默认  8): 2
    
  5. 这里输入:L,查看所有类型,找到“Linux LVM”的数字序号。如果光标前面显示“:”说明没有到低,按空格展示下一页;如果光标前面显示“(END)”说明到了结尾,按“q”可以退出查看,继续输入指令。我这里截取一小段内容。
    分区类型或别名(输入 L 列出所有类型):L
    ......
     42 Linux home                     933AC7E1-2EB4-4F13-B844-0E14E2AEF915
     43 Linux RAID                     A19D880F-05FC-4D3B-A006-743F0F84911E
     44 Linux LVM                      E6D6D379-F507-44C2-A23C-238F2A3DF928
     45 Linux variable data            4D21B016-B534-45C2-A9FB-5C16E091FD2D
     46 Linux temporary data           7EC6F557-3BC5-4ACA-B293-16EF5DF639D1
    ......
    
  6. 根据上面打印的内容可以得知,LVM的值是44,那就输入:44
    分区类型或别名(输入 L 列出所有类型):44
    
    已将分区“Linux root (MIPS-32 LE)”的类型更改为“Linux LVM”。
    
  7. 预览一下即将修改的分区表:p
    命令(输入 m 获取帮助):p
    Disk /dev/nvme0n1:1.86 TiB,2048408248320 字节,4000797360 个扇区
    磁盘型号:ZHITAI TiPlus7100 2TB
    单元:扇区 / 1 * 512 = 512 字节
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:gpt
    磁盘标识符:92EEA5EB-F1E8-4633-B6AD-3A9EF7029653
    
    设备                 起点       末尾       扇区      大小 类型
    /dev/nvme0n1p1       2048     206847     204800   100M EFI 系统
    /dev/nvme0n1p2     206848 1853315071 1853108224 883.6G Linux LVM
    /dev/nvme0n1p6 1853315072 1855412223    2097152     1G Linux 文件系统
    /dev/nvme0n1p8 1855412224 4000796671 2145384448  1023G Linux LVM
    
  8. 确认无误后,写入分区表:w
    命令(输入 m 获取帮助):w
    分区表已调整。
    正在同步磁盘。
    

扩展根目录空间

  1. 使内核重新读取磁盘分区表:partprobe /dev/nvme0n1
  2. 将新分区创建为物理卷:pvcreate /dev/nvme0n1p2
    [root@Kylin ~]# pvcreate /dev/nvme0n1p2
      Physical volume "/dev/nvme0n1p2" successfully created.
    
  3. 检查系统内卷组名称:vgs
    [root@Kylin ~]# vgs
      VG   #PV #LV #SN Attr   VSize VFree
      klas   2   2   0 wz--n- 1.86t    0
    
  4. 将新物理卷加入现有的 klas 卷组(上面命令的VG):vgextend klas /dev/nvme0n1p2
    [root@Kylin ~]# vgextend klas /dev/nvme0n1p2
      Volume group "klas" successfully extended
    
  5. 扩展根目录逻辑卷:lvextend -l +100%FREE /dev/mapper/klas-root
    [root@Kylin ~]# lvextend -l +100%FREE /dev/mapper/klas-root
      Size of logical volume klas/root changed from <1019.00 GiB (260863 extents) to <1.86 TiB (487072 extents).
      Logical volume klas/root successfully resized.
    
  6. XFS 文件系统在线识别新空间:xfs_growfs /
    [root@Kylin ~]# xfs_growfs /
    meta-data=/dev/mapper/klas-root  isize=512    agcount=4, agsize=66780928 blks
    		 =                       sectsz=512   attr=2, projid32bit=1
    		 =                       crc=1        finobt=1, sparse=1, rmapbt=1
    		 =                       reflink=1    bigtime=1 inobtcount=1 nrext64=1
    data     =                       bsize=4096   blocks=267123712, imaxpct=25
    		 =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
    log      =internal log           bsize=4096   blocks=130431, version=2
    		 =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 267123712 to 498761728
    
  7. 最后查看一下根目录大小:df -h /
    [root@Kylin ~]# df -h /
    文件系统               大小  已用  可用 已用% 挂载点
    /dev/mapper/klas-root  1.9T  319G  1.6T   17% /
    
posted @ 2026-08-10 16:26  苍凉温暖  阅读(27)  评论(0)    收藏  举报