首先我要说的是,我已经浏览过很多与我所遇到的非常相似的帖子,但没有一个能解决我的问题......
在我的 xen 服务器中我每个虚拟机使用 5 个 lvm 磁盘:
/boot
/
/home
/var
/swap
我只是用 lvcreate 创建磁盘,将它们添加到 vm 配置文件并创建 vm。然后,每个磁盘分区都由分区管理器在安装操作系统(Ubuntu 服务器 12.04)时创建。
通常,调整 lvm 磁盘的大小应该像 lvextend 一样简单
lvextend -L +100MB /dev/vm-disks/testes-home
Extending logical volume testes-home to 524.00 MiB
Logical volume testes-home successfully resized
接着是resize2fs,但是给出错误...
resize2fs /dev/vm-disks/testes-home
resize2fs 1.42 (29-Nov-2011)
resize2fs: Bad magic number in super-block while trying to open /dev/vm-disks/testes-home
Couldn't find valid filesystem superblock.
奇怪的是,对于 lvm 卷来说,挂载也不能按正常方式进行:
mount /dev/vm-disks/testes-home /root/mount/
mount: you must specify the filesystem type
人们可能会认为有多个分区,但运行 kpartx 只会产生一个分区......
kpartx -av /dev/vm-disks/testes-home
add map vm--disks-testes--home1 (252:36): 0 1044480 linear /dev/vm-disks/testes-home 2048
...并且安装那个工作正常......
mount /dev/mapper/vm--disks-testes--home1 /root/mount/
e2fsck 也抱怨...
e2fsck -f /dev/vm-disks/testes-home
e2fsck 1.42 (29-Nov-2011)
e2fsck: Superblock invalid, trying backup blocks...
e2fsck: Bad magic number in super-block while trying to open /dev/vm-disks/testes-home
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
为什么这一切?这应该非常简单...
fdisk -l /dev/vm-disks/testes-home
Disk /dev/vm-disks/testes-home: 549 MB, 549453824 bytes
37 heads, 35 sectors/track, 828 cylinders, total 1073152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 1572864 bytes
Disk identifier: 0x000d462a
Device Boot Start End Blocks Id System
/dev/vm-disks/testes-home1 2048 1046527 522240 83 Linux
有任何想法吗? :)
答案1
问题在于您尝试resize2fs
在整个逻辑卷上运行该工具,该逻辑卷包含一个分区表和卷内的分区。
fdisk
首先,您必须通过在逻辑卷上运行来调整分区表的大小。
然后,您需要使用kpartx
它来创建从卷内的分区到设备的映射,就像您在安装之前所做的那样,然后resize2fs
在实际分区上运行。
因此,总而言之,扩展分区,运行:
resize2fs /dev/vm--disks--testes--home1
代替:
resize2fs /dev/vm-disks-testes