GRUB Legacy 抱怨文件系统未知?

GRUB Legacy 抱怨文件系统未知?

我在 OpenStack 集群 (KVM) 中有多个虚拟机,当它们从具有单个 5GB 分区的映像构建时,它们也将配置相同的 HDD 几何结构。我找到了几种从实际 OpenStack 主机调整它们大小的方法,但我也希望能够从虚拟机内部调整它们的大小,这样我也可以使用该方法。

一种方法是fdisk删除分区元数据,然后重新创建并写出分区元数据,然后在启动回虚拟机后重新启动并调整大小。当我最近尝试这个时,虽然它没有按预期工作。导致虚拟机在 GRUB 提示符下挂起。这是一个 CentOS 6.7 VM,因此引导加载程序是 GRUB 遗留的。

           SS1

我可以选择哪些选项来在此虚拟机上获取文件系统?我怀疑我可以使用 virtmanager 来访问虚拟机,然后在其中公开 LiveCD ISO,以便我可以用它“启动”它,然后获取关联的文件系统,但是有没有更直接的方法来恢复访问并启动该虚拟机?

参考

答案1

所以我的问题是如何删除和重新创建分区。我被绊倒了fdisk,因为它显示的起始位置不在扇区中。当我fdisk像这样正确调用时:

$ sudo fdisk -c -u /dev/vda

Command (m for help): p

Disk /dev/vda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004064e

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    31459327    15728640   83  Linux

很明显,当我创建新分区时,我没有保持起始扇区对齐。

来自fdisk的使用指南:

Options:
 -c                        switch off DOS-compatible mode
 -u <size>                 give sizes in sectors instead of cylinders

因此,只要特别注意这个细节,我就能够执行以下过程来使用所有可用的 HDD 空间来扩展虚拟机的分区。

调整大小的过程

删除现有分区:

Command (m for help): d
Selected partition 1

现在添加新的:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (2048-83886079, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-83886079, default 83886079):
Using default value 83886079

使其可启动:

Command (m for help): a
Partition number (1-4): p
Partition number (1-4): 1

并确认这一切:

Command (m for help): p

Disk /dev/vda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004064e

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83886079    41942016   83  Linux

将其提交到硬盘:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

现在重新启动系统并根据需要执行 resize2fs:

$ sudo resize2fs /dev/vda1
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 10485504 blocks long.  Nothing to do!

并确认:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  807M   37G   3% /
tmpfs           1.9G     0  1.9G   0% /dev/shm

相关内容