resize2fs:尝试打开时超级块中的魔术数字错误
Posted
技术标签:
【中文标题】resize2fs:尝试打开时超级块中的魔术数字错误【英文标题】:resize2fs: Bad magic number in super-block while trying to open 【发布时间】:2014-12-05 23:23:45 【问题描述】:我正在尝试在 CentOS7 上调整逻辑卷的大小,但遇到以下错误:
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/mapper/centos-root
Couldn't find valid filesystem superblock.
我尝试添加一个新分区(使用 fdisk)并使用 vgextend 扩展卷组,然后调整大小。 使用 lvextend 调整逻辑卷的大小工作正常,但在 resize2fs 时失败。
我还尝试删除现有分区(使用 fdisk)并使用更大的结束块重新创建它,然后使用 lvm pvresize 调整物理卷的大小,然后使用 lvm lvresize 调整逻辑卷的大小。到目前为止一切正常。
一旦我尝试使用 resize2fs,同时使用上述两种方法,我收到了完全相同的错误。
希望以下内容能有所启发。
fdisk -l
[root@server~]# fdisk -l
Disk /dev/xvda: 32.2 GB, 32212254720 bytes, 62914560 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 label type: dos
Disk identifier: 0x0009323a
Device Boot Start End Blocks Id System
/dev/xvda1 * 2048 1026047 512000 83 Linux
/dev/xvda2 1026048 41943039 20458496 8e Linux LVM
/dev/xvda3 41943040 62914559 10485760 8e Linux LVM
Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 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 /dev/mapper/centos-root: 29.5 GB, 29532094464 bytes, 57679872 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
pv显示
[root@server ~]# pvdisplay
--- Physical volume ---
PV Name /dev/xvda2
VG Name centos
PV Size 19.51 GiB / not usable 2.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 4994
Free PE 0
Allocated PE 4994
PV UUID 7bJOPh-OUK0-dGAs-2yqL-CAsV-TZeL-HfYzCt
--- Physical volume ---
PV Name /dev/xvda3
VG Name centos
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 2559
Free PE 0
Allocated PE 2559
PV UUID p0IClg-5mrh-5WlL-eJ1v-t6Tm-flVJ-gsJOK6
vg显示
[root@server ~]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 29.50 GiB
PE Size 4.00 MiB
Total PE 7553
Alloc PE / Size 7553 / 29.50 GiB
Free PE / Size 0 / 0
VG UUID FD7k1M-koJt-2veW-sizL-Srsq-Y6zt-GcCfz6
左显示
[root@server ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID KyokrR-NGsp-6jVA-P92S-QE3X-hvdp-WAeACd
LV Write Access read/write
LV Creation host, time localhost, 2014-10-09 08:28:42 +0100
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID ugCOcT-sTDK-M8EV-3InM-hjIg-2nwS-KeAOnq
LV Write Access read/write
LV Creation host, time localhost, 2014-10-09 08:28:42 +0100
LV Status available
# open 1
LV Size 27.50 GiB
Current LE 7041
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
我可能做了一些愚蠢的事情,所以任何帮助将不胜感激!
【问题讨论】:
Trying to resize2fs EB volume fails 的可能重复项 获取备份超级块的位置:newfs -N /dev/device-name
& 通过 FSCK 恢复坏超级块:fsck -F ufs -o b=<Superblock_stored_location> /dev/device-name
来源:docs.oracle.com/cd/E19455-01/805-7228/6j6q7uf0i/index.html
【参考方案1】:
经过一些试验和错误...如可能的答案中所述,结果证明需要xfs_growfs
而不是resize2fs
。
CentOS 7,
fdisk /dev/xvda
新建主分区,设置类型为linux lvm
。
n
p
3
t
8e
w
创建一个新的主卷并将卷组扩展到新卷。
partprobe
pvcreate /dev/xvda3
vgextend /dev/centos /dev/xvda3
检查物理卷的可用空间,用可用空间扩展逻辑卷。
vgdisplay -v
lvextend -l+288 /dev/centos/root
最后执行在线调整大小以调整逻辑卷的大小,然后检查可用空间。
xfs_growfs /dev/centos/root
df -h
【讨论】:
也适用于 RHEL 7。谢谢! 如何缩小一个分区并将缩小后的空间添加到另一个分区?xfs_growfs
似乎对此不起作用。
在这里您可以找到更多信息:tecmint.com/extend-and-reduce-lvms-in-linux
xfs_growfs 用于 XFS 文件系统。如果有人用另一个文件系统(ext4)安装 CentOS,xfs_growfs 将失败。使用处理 xfs、ext4 和一些文件系统的fsadm
。
这个答案大部分是正确的,但 xfs_growfs 需要一个安装点,而不是一个设备!所以“xfs_growfs /dev/centos/root”不正确,应该是“xfs_growfs /wherever/you/mounted/it” 这花了我一段时间才弄清楚:linux.die.net/man/8/xfs_growfs 至少在 Fedora 31 上没有指定 DEVICE为我工作。【参考方案2】:
在 Centos 7 中,默认文件系统是 xfs。
xfs 文件系统支持只扩展不减少。因此,如果您想调整文件系统的大小,请使用 xfs_growfs 而不是 resize2fs。
xfs_growfs /dev/root_vg/root
注意:对于 ext4 文件系统使用
resize2fs /dev/root_vg/root
【讨论】:
可以使用mount | column -t
(以及许多其他方式)找到他们的文件系统类型。
您需要指定挂载点,而不是块设备。 xfs_growfs version 5.1.0
,Fedora 31,Usage: xfs_growfs [options] mountpoint
【参考方案3】:
我今天中午遇到了同样的问题,终于在这里找到了解决方案 --> Trying to resize2fs EB volume fails
我跳过了挂载,因为分区已经挂载了。
显然 CentOS 7 使用 XFS 作为默认文件系统,因此resize2fs
将失败。
我查看了/etc/fstab
,你猜怎么着,XFS 正盯着我的脸……希望这会有所帮助。
【讨论】:
我在 centos 7 中运行了 lvextend --resize 为你调整大小。这似乎解决了这个问题。 lvextend 的手册页说它使用fsadm
来调整文件系统的大小。所以我尝试了fsadm resize /dev/centos/root
,它成功了。
从技术上讲,这并不是一个真正的答案,并且该 URL 上的信息对我不起作用。最好在这里回答这个问题,我们可以在这里讨论它,如果您认为这有帮助,请添加指向支持文档的链接。【参考方案4】:
resize2fs 命令不适用于所有文件系统。
请使用以下命令确认您的实例的文件系统。
请按照亚马逊官方文档中提到的针对不同文件系统的步骤进行扩容。
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html
Centos 中默认的文件系统是 xfs,对 xfs 文件系统使用以下命令来增加分区大小。
sudo xfs_growfs -d /
然后“df -h”进行检查。
【讨论】:
【参考方案5】:在 centos 和 fedora 上使用 fsadm
fsadm resize /dev/vg_name/root
【讨论】:
你的评论保存了我的服务器!【参考方案6】:CentOS7 + 虚拟机
我做到了:
-
Gparted-live 扩展音量
pvresize -v /dev/sda2
lvresize -r -l+100%FREE centos/root
【讨论】:
【参考方案7】:在 Centos 7 上,在回答 resize2fs 因“坏幻数”而失败的原始问题时,请尝试使用 fsadm,如下所示:
fsadm resize /dev/the-device-name-returned-by-df
然后:
df
...确认尺寸更改已生效。
【讨论】:
在调整 LVM 分区大小的 CentOS VM 上也为我工作。【参考方案8】:在阅读了 LVM 并熟悉了 PV -> VG -> LV 之后,这对我有用:
0) #df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 824K 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/fedora-root 15G 2.1G 13G 14% /
tmpfs 1.9G 0 1.9G 0% /tmp
/dev/md126p1 976M 119M 790M 14% /boot
tmpfs 388M 0 388M 0% /run/user/0
1) #vgs
VG #PV #LV #SN Attr VSize VFree
fedora 1 2 0 wz--n- 231.88g 212.96g
2) #vgdisplay
--- Volume group ---
VG Name fedora
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 231.88 GiB
PE Size 4.00 MiB
Total PE 59361
Alloc PE / Size 4844 / 18.92 GiB
Free PE / Size 54517 / 212.96 GiB
VG UUID 9htamV-DveQ-Jiht-Yfth-OZp7-XUDC-tWh5Lv
3) # lvextend -l +100%FREE /dev/mapper/fedora-root
Size of logical volume fedora/root changed from 15.00 GiB (3840 extents) to 227.96 GiB (58357 extents).
Logical volume fedora/root successfully resized.
4) #lvdisplay
5) #fd -h
6) # xfs_growfs /dev/mapper/fedora-root
meta-data=/dev/mapper/fedora-root isize=512 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1 spinodes=0 rmapbt=0
= reflink=0
data = bsize=4096 blocks=3932160, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 3932160 to 59757568
7) #df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 828K 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/fedora-root 228G 2.3G 226G 2% /
tmpfs 1.9G 0 1.9G 0% /tmp
/dev/md126p1 976M 119M 790M 14% /boot
tmpfs 388M 0 388M 0% /run/user/0
最好的问候,
【讨论】:
树莓派上的 Fedora Server 35,作为一个魅力。没有其他解决方案有效,感谢您提供详细步骤!【参考方案9】:How to resize root partition online :
1) [root@oel7 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/root_vg-root 5.0G 4.5G 548M 90% /
2)
PV /dev/sda2 VG root_vg lvm2 [6.00 GiB / 0 free]
as here it shows that there is no space left on root_vg volume group, so first i need to extend VG
3)
[root@oel7 ~]# vgextend root_vg /dev/sdb5
Volume group "root_vg" successfully extended
4)
[root@oel7 ~]# pvscan
PV /dev/sda2 VG root_vg lvm2 [6.00 GiB / 0 free]
PV /dev/sdb5 VG root_vg lvm2 [2.00 GiB / 2.00 GiB free]
5) Now extend the logical volume
[root@oel7 ~]# lvextend -L +1G /dev/root_vg/root
Size of logical volume root_vg/root changed from 5.00 GiB (1280 extents) to 6.00 GiB (1536 extents).
Logical volume root successfully resized
3) [root@oel7 ~]# resize2fs /dev/root_vg/root
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/root_vg /root
Couldn't find valid filesystem superblock.
as root partition is not a ext* partiton so , you resize2fs will not work for you.
4) to check the filesystem type of a partition
[root@oel7 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/root_vg-root xfs 6.0G 4.5G 1.6G 75% /
devtmpfs devtmpfs 481M 0 481M 0% /dev
tmpfs tmpfs 491M 80K 491M 1% /dev/shm
tmpfs tmpfs 491M 7.1M 484M 2% /run
tmpfs tmpfs 491M 0 491M 0% /sys/fs /cgroup
/dev/mapper/data_vg-home xfs 3.5G 2.9G 620M 83% /home
/dev/sda1 xfs 497M 132M 365M 27% /boot
/dev/mapper/data_vg01-data_lv001 ext3 4.0G 2.4G 1.5G 62% /sybase
/dev/mapper/data_vg02-backup_lv01 ext3 4.0G 806M 3.0G 22% /backup
above command shows that root is an xfs filesystem , so we are sure that we need to use xfs_growfs command to resize the partition.
6) [root@oel7 ~]# xfs_growfs /dev/root_vg/root
meta-data=/dev/mapper/root_vg-root isize=256 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 1310720 to 1572864
[root@oel7 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/root_vg-root xfs 6.0G 4.5G 1.6G 75% /
【讨论】:
【参考方案10】:操作系统:rhel7
在gparted
之后,# xfs_growfs /dev/mapper/rhel-root
在生命系统上发挥了作用。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 47G 47G 20M 100% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.3M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 205M 810M 21% /boot
tmpfs 379M 8.0K 379M 1% /run/user/42
tmpfs 379M 0 379M 0% /run/user/1000
# lvresize -l +100%FREE /dev/mapper/rhel-root
Size of logical volume rhel/root changed from <47.00 GiB (12031 extents) to <77.00 GiB (19711 extents).
Logical volume rhel/root successfully resized.
# xfs_growfs /dev/mapper/rhel-root
meta-data=/dev/mapper/rhel-root isize=512 agcount=7, agsize=1900032 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=12319744, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=3711, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 12319744 to 20184064
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 77G 47G 31G 62% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.3M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 205M 810M 21% /boot
tmpfs 379M 8.0K 379M 1% /run/user/42
tmpfs 379M 0 379M 0% /run/user/1000
【讨论】:
【参考方案11】:调整已挂载的现有卷的大小
sudo mount -t xfs /dev/sdf /opt/data/
mount: /opt/data: /dev/nvme1n1 已经安装在 /opt/data 上。
sudo xfs_growfs /opt/data/
【讨论】:
在我的 ec2 实例上工作,就我而言,我想将主卷与新增加的大小对齐。使用sudo growpart /dev/xvda 1
后,只需发出sudo xfs_growfs /dev/xvda1
。现在 df -h 将反映您的卷的大小,无需刷新。当然相应地更改您的安装路径【参考方案12】:
就我而言,我可以使用以下命令修复超级块位置:
yum install gdisk
parted -l /dev/mapper/centos-root
growpart /dev/mapper/centos-root 1
xfs_growfs /
【讨论】:
以上是关于resize2fs:尝试打开时超级块中的魔术数字错误的主要内容,如果未能解决你的问题,请参考以下文章