Xen

Xen lvm resize2fs:超級塊中的錯誤幻數

  • September 2, 2014

首先,我不得不說我一直在瀏覽很多與我所擁有的非常相似的文章,但沒有一個可以解決我的問題……

在我的 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

有任何想法嗎?:)

問題是您試圖resize2fs在整個邏輯卷上執行該工具,其中包含一個分區表和卷內的一個分區。

首先,您必須通過fdisk在邏輯卷上執行來調整分區表的大小。

然後您需要使用kpartx創建從卷內分區到設備的映射,就像您在安裝之前所做的那樣,然後resize2fs在實際分區上執行。

所以,總而言之,擴展分區,執行:

resize2fs /dev/vm--disks--testes--home1

代替:

resize2fs /dev/vm-disks-testes

引用自:https://serverfault.com/questions/625740