系统初始状态:

系统初始状态:

我的 Centos6x64 VM 有一个约 500G 的 xvda 磁盘。最初,8G分配给xvda1并挂载在/上。 xvda 中剩余的 500G 磁盘空间尚未分配。因此,我决定使剩余的磁盘空间可用,并使用 fdisk、pvcreate、vgcreate、lvcreate、格式化并最后更新 fstab 以自动安装它们,创建了一个带有逻辑卷的分区 xvda2。

与相应文件夹(挂载点)的关系为:

  • /dev/centos/home ..../home [200G]
  • /dev/centos/root ..../ [100G]

问题是:

  • /home 似乎已正确安装,如所示大小df -h是197G。
  • 但是root上的安装不正确。在结果中df -h下面,尺寸为/dev/xvda1镶嵌在/boot是7.8G,这是正确的。但是,尺寸/dev/mapper/centos-root镶嵌在/错误显示7.8G。它应该显示大约 100G。它错误地显示了与以下磁盘空间相同的磁盘空间/dev/xvda1

问题:

  • 我尝试整理了以下一些结果,供大家参考。请帮助解决这个问题。我可以做什么来纠正这个问题?
  • 另外,如果我只是想将分配给 xvda1 的磁盘空间从 8G 增加到 200G,是否有更简单更直接的方法?在谷歌搜索上,我发现了这个邮政这非常符合目标。但我无法让它成功重新启动,因为它卡在 grub 屏幕上。我没有太多关于此失败细节的信息。当使用 fdisk 分配额外的磁盘空间时,我是否错过了一些设置先决条件,例如:格式化?

我对此很陌生并且陷入困境。请帮忙。

系统初始状态:

# fdisk -l
Disk /dev/xvda: 536.9 GB, 536870912000 bytes 255 heads, 63 sectors/track, 65270 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000611ee
    Device      Boot    Start   End      Blocks   Id  System
    /dev/xvda1   *      1       1045     8387584   83  Linux
Disk /dev/xvdb: 32.2 GB, 32204390400 bytes 255 heads, 63 sectors/track, 3915 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000

# lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  500G  0 disk
└─xvda1 202:1    0    8G  0 part /
xvdb    202:16   0   30G  0 disk /mnt

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  897M  6.5G  12% /
tmpfs           3.6G     0  3.6G   0% /dev/shm
/dev/xvdb        30G  173M   28G   1% /mnt

# cat /etc/fstab
UUID=2d0f2d55-672b-4c05-8eba-9421dd808ad7 / ext4    defaults 1 1
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/xvdb       /mnt    auto    defaults,nofail,comment=cloudconfig     0 2

我执行的步骤:

  • fdisk /dev/xvda ...(n > p = 2 > t = 8e)
  • 重启
  • pvcreate /dev/xvda2
  • vgcreate centos /dev/xvda2
  • lvcreate -n home -L 200G centos
  • lvcreate -n root -L 100G centos
  • lvcreate -n swap -L 4G分
  • mkfs.ext4 /dev/centos/root
  • mkfs.ext4 /dev/centos/home
  • mkswap /dev/centos/swap
  • 挂载 /dev/xvda1 /boot
    • ...这就是我想做的但不被允许的。
    • 因此,我将/etc/fstab挂载点从/dev/xvda1更新并更改//boot。但这也行不通。
      • 在下面提供的结果中,df -h显示了两者的正确安装点/dev/xvda1 i.e. /boot/dev/mapper/centos-root i.e. /但显示的磁盘空间/dev/mapper/centos-root = 7.8G不正确。我正期待着~100G
      • 此外, 的结果lsblk显示 的空安装点centos-root (dm-1)。对于centos-root,我预期的安装点//dev/xvda1预期的安装点/boot
  • 挂载 /dev/centos/root/
  • 挂载 /dev/centos/home /home
  • 在 /etc/fstab 中创建相应的条目(请参阅cat /etc/fstab下文)
  • 立即关闭 -r
  • mkhomedir_helper centos
    • 重新启动后,centos 的主目录变得无法访问,因此我收到错误“无法 chdir 到主目录 /home/centos:没有这样的文件或目录”。为了解决这个问题,我必须运行上面的命令来为用户 centos 重新创建主目录

猫 /etc/fstab

UUID=3a75c67b-5053-4863-963e-c6a572f13972       /       ext4    defaults        1 1
UUID=2d0f2d55-672b-4c05-8eba-9421dd808ad7       /boot   ext4    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/xvdb       /mnt    auto    defaults,nofail,comment=cloudconfig     0 2
/dev/mapper/centos-home         /home              ext4    defaults     0 0

fdisk -l

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1        1045     8387584   83  Linux
/dev/xvda2            1045       65270   515892667   8e  Linux LVM

df-h

Filesystem              Size  Used Avail Use%  Mounted on
/dev/mapper/centos-root 7.8G  898M  6.5G  12%  /
tmpfs                   3.6G     0  3.6G   0%  /dev/shm
/dev/xvda1              7.8G  898M  6.5G  12%  /boot
/dev/xvdb               30G   173M   28G   1%  /mnt
/dev/mapper/centos-home 197G   60M  187G   1%  /home

LSBLK

NAME                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda                   202:0    0  500G  0 disk
├─xvda1                202:1    0    8G  0 part /
└─xvda2                202:2    0  492G  0 part
  ├─centos-home (dm-0) 253:0    0  200G  0 lvm  /home
  ├─centos-root (dm-1) 253:1    0  100G  0 lvm
  └─centos-swap (dm-2) 253:2    0    4G  0 lvm
xvdb                   202:16   0   30G  0 disk /mnt

黑子

/dev/xvda1: UUID="2d0f2d55-672b-4c05-8eba-9421dd808ad7" TYPE="ext4"
/dev/xvdb: UUID="3656cb72-7e94-4e63-81ea-66397ad45d13" SEC_TYPE="ext2" TYPE="ext3"
/dev/xvda2: UUID="ASXeKh-x8xL-nDVF-afzq-zU8a-sCbd-qGM6pS" TYPE="LVM2_member"
/dev/mapper/centos-home: UUID="4510891a-354d-4486-bd47-95d474f197bb" TYPE="ext4"
/dev/mapper/centos-root: UUID="3a75c67b-5053-4863-963e-c6a572f13972" TYPE="ext4"
/dev/mapper/centos-swap: UUID="5dff9552-3d36-4cfa-936c-28e02c1ae108" TYPE="swap"

lv显示

  --- Logical volume ---
  LV Path                /dev/centos/home
  LV Name                home
  VG Name                centos
  LV UUID                lFWQxa-mqgc-Ur8t-npDc-O2NU-r6J4-UhC2j2
  LV Write Access        read/write
  LV Creation host, time ip-xx-xx-xx-xx.ec2.internal, 2018-06-16 07:18:22 +0000
  LV Status              available
  # open                 1
  LV Size                200.00 GiB
  Current LE             51200
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                UQ6oAD-JyRa-cb8l-VmgW-aZh9-qbof-Z1Z9af
  LV Write Access        read/write
  LV Creation host, time ip-xx-xx-xx-xx.ec2.internal, 2018-06-16 07:18:22 +0000
  LV Status              available
  # open                 0
  LV Size                100.00 GiB
  Current LE             25600
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                QyY2z9-5EpX-D8dY-DORZ-9BbY-TqgA-07fc3X
  LV Write Access        read/write
  LV Creation host, time ip-xx-xx-xx-xx.ec2.internal, 2018-06-16 07:18:24 +0000
  LV Status              available
  # open                 0
  LV Size                4.00 GiB
  Current LE             1024
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

答案1

您尝试挂载的文件系统/boot( /dev/xvda1) 实际上是您的/.因此,即使您将其安装在所需的安装点,它也无法工作,因为您真正想要安装的是/boot内部的目录/dev/xvda1,并且您无法安装文件系统中的目录。

您创建了 LVM 逻辑卷和文件系统//home但没有在其中放入任何数据;您没有将现有文件系统迁移到新的块设备。

此外,GRUB 不知道您的新/文件系统,因此它将尝试从原始/.以下概述了如何使用这些逻辑卷:

警告

在执行任何这些步骤之前,请先进行备份。事情可能会出现可怕的错误,唯一好的“撤消按钮”就是备份。

安全步骤

  1. 重新启动进入单用户模式。您将复制实时文件系统,因此您希望运行的东西尽可能少。
  2. 将当前目录绑定挂载/到新位置,例如主目录中的目录。
  3. 也在您的主目录中安装新的/逻辑卷。/home
  4. /使用绑定挂载复制现有文件并将其排除/home到新/逻辑卷。使用绑定挂载作为复制源非常重要,因为它可以避免复制其他已挂载的文件系统;所有内容都挂载在 下的某个位置/
  5. 将现有的/home(再次使用绑定安装)复制到新的/home逻辑卷。
  6. 重新启动,当 GRUB 菜单出现时,选择适当的内核条目并按“e”。这将使您进入编辑模式。添加/编辑变量realroot,使其值为/dev/mapper/centos-root。我假设您的 initrd 支持 LVM。然后按 ENTER 键。
  7. 如果一切顺利,您的系统现在将从根逻辑卷启动。

不安全的步骤

现在开始了一些步骤,这使得这个过程很难撤销。这就是事情可以真的出错。拿出伏特加(当然是为了庆祝后者)并继续:

  1. 将旧的安装/在某处。
  2. 卸载/boot
  3. /boot从旧卷复制/到逻辑卷之一中的目录。如果你敢的话,你甚至可以将它复制到 tmpfs 中。这仅作为接下来两个步骤的临时备份。
  4. 到了不归路了:mkfs.ext4 /dev/xvda1。您的操作系统将不再按原样启动。
  5. mount /dev/xvda1 /boot
  6. /boot使用您在步骤 3 中所做的备份进行填充。
  7. 仔细检查文件系统的 UUID /boot,并/etc/fstab根据需要进行更新。
  8. 现在是时候更新 GRUB2 了。运行grub-mkconfig | less并查看它是否选择了正确的块设备。您应该看到realroot与您手动添加的条目相同的条目。如果一切正常,请运行grub-mkconfig -o /boot/grub/grub.cfg以写出新的 GRUB 配置。
  9. 重启。将发生以下两种情况之一:系统将成功启动,或者...不会。不管怎样,这就是伏特加登场的时候了。

相关内容