我已经搜索过论坛,但找不到合适的答案:
我有一台 Ubuntu Server 10.04 作为 KVM 主机,以及一个运行 10.04 的客户系统。主机系统使用 LVM,有三个逻辑卷,它们作为虚拟块设备提供给客户机 - 一个用于 /,一个用于 /home,一个用于 swap。客户机已在未使用 LVM 的情况下进行分区。
我已经在主机系统中扩大了逻辑卷 - 客户机成功看到了更大的虚拟磁盘。但是,这个虚拟磁盘包含一个“旧”分区,其大小仍然很小。
fdisk -l 的输出是
me@produktion:/$ LC_ALL=en_US sudo fdisk -l
Disk /dev/vda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 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: 0x000c8ce7
Device Boot Start End Blocks Id System
/dev/vda1 * 1 3917 31455232 83 Linux
Disk /dev/vdb: 2147 MB, 2147483648 bytes
244 heads, 47 sectors/track, 365 cylinders
Units = cylinders of 11468 * 512 = 5871616 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f2bf7
Device Boot Start End Blocks Id System
/dev/vdb1 1 366 2095104 82 Linux swap / Solaris
Partition 1 has different physical/logical beginnings (non-Linux?):
phys=(0, 32, 33) logical=(0, 43, 28)
Partition 1 has different physical/logical endings:
phys=(260, 243, 47) logical=(365, 136, 44)
Disk /dev/vdc: 225.5 GB, 225485783040 bytes
255 heads, 63 sectors/track, 27413 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: 0x00027f25
Device Boot Start End Blocks Id System
/dev/vdc1 1 9138 73398272 83 Linux
parted print all 的输出是
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 32.2GB 32.2GB primary ext4 boot
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 2146MB 2145MB primary linux-swap(v1)
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 75.2GB 75.2GB primary ext4
我想要实现的只是增加或调整分区 /dev/vdc1 的大小,以便它使用虚拟块设备 /dev/vdc 提供的整个空间。问题是,当我尝试使用 parted 执行此操作时,它会抱怨:
(parted) select /dev/vdc
Using /dev/vdc
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 75.2GB 75.2GB primary ext4
(parted) resize 1
WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs. We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Start? [1049kB]?
End? [75.2GB]? 224GB
Error: File system has an incompatible feature enabled. Compatible features are has_journal, dir_index, filetype, sparse_super and large_file. Use tune2fs
or debugfs to remove features.
那么我该怎么办?这是一个无头生产系统。有什么安全的方法可以扩大此分区?不过我可以卸载它 - 所以这不是问题。
编辑:Cfdisk 显示了一个小的未分区可用空间,然后是分区(标记为“boot”和 Linux/ext3),然后是剩余的未分区空间。删除分区并使用 cfdisk 重新创建后 - cfdisk 显示一个大的分区区域(对我来说没问题),并且文件系统类型只有“Linux”
Resize2fs 返回此错误
resize2fs 1.41.11 (14-Mar-2010) resize2fs: Bad magic number in super-block while trying to open /dev/vdc1 Couldn't find valid filesystem superblock
答案1
答案2
一个例子:
/dev/sdb2 是 /boot 分区。它有 100 MB,相当小。要在正在运行的系统上增加此 ext4 分区,请执行以下操作(以 root 或 sudo 身份):
卸载 /boot
parted /dev/sdb
(分开)打印
型号:ATA Patriot Torqx 2 (scsi)
磁盘 /dev/sdb:32.0GB
扇区大小(逻辑/物理):512B/512B
分区表:msdos编号 开始 结束 大小 类型 文件系统 标志
1 1049kB 12.9GB 12.9GB 主类型=83
2 12.9GB 13.0GB 107MB 主 ext4 类型=83(分开) rm 2
(分开)
分区类型?主/扩展?主
文件系统类型?[ext2]?
开始?12.9GB
结束?13.4GB(分开)退出
resize2fs /dev/sdb2
resize2fs 1.42.6(2012 年 9 月 21 日)
/dev/sdb2 上的文件系统安装在 /boot 上;需要在线调整大小
old_desc_blocks = 1,new_desc_blocks = 2
/dev/sdb2 上的文件系统现在长 498688 个块。
完毕!
所有数据都保留在原处。/boot 已准备好使用,大小为 472MB(parted 的大小并不安全,请阅读手册了解原因)
所有数据之前都备份过,但这只是作为预防措施。我建议也这样做。
如果失败,请使用以下命令查找停止卸载 /boot 的进程:
lsof /boot
祝你好运!
答案3
如果您尝试删除并重新创建分区,当您的分区起始地址低于 2048 时,您可能会遇到一些麻烦,就像我遇到的那样resize2fs
。
Couldn't find valid filesystem superblock.
从fdisk 版本 2.17.2,fdisk IIUC 强制您从 2048 开始,以确保您的硬盘“正确对齐”。因此,如果您的原始分区在 2048 之前开始,那么您在尝试重新创建分区时会遇到困难。
最好的方法是克隆磁盘时使用 rsync。