今天我的笔记本电脑在启动时突然显示以下文字:
mount: mounting /dev/dm-0 on /root failed: No such device
mount: mounting /dev on /root/dev failed: No such file or directory
mount: mounting /sys on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed: No such file or directory
Target filesystem doesn't have requested /sbin/init.
No init found. Try passing init= bootarg.
BusyBox v1.21.1 (Ubuntu 1:1.21.0-1ubuntu1) built-in shell (ash)
...
我从 livecd 启动并检查了所有文件系统(有三个 lvm 卷local-root
,local-home
并且local-swap
/dev/sda1 处有一个不在 lvm 中的 /boot 分区),fsck
重新启动后结果相同..
然后,当我将卷安装chroot
到它们时,我发现local-root
由于这个原因无法安装:
# mount /dev/mapper/local-root /mnt
mount: unknown filesystem type 'silicon_medley_raid_member'
该死!为什么?!为什么是我,而且是现在?!
我已经检查过两次了:
# blkid /dev/mapper/local-root
/dev/mapper/local-root: TYPE="silicon_medley_raid_member"
不过,我仍然可以使用手动定义的 fstype 轻松地挂载它:
# mount -t ext4 /dev/mapper/local-root /mnt
但我不知道下一步该做什么,如何在不丢失数据的情况下将 FSTYPE 改回 ext4?(是的,我有备份,但仅限于“local-home”卷,而且我现在不想重新安装完整的系统。)
谢谢你的时间!
答案1
我今天对同一个错误感到很有趣,并且无法计算所有的文件系统检查,启动修复,grub 重新安装......
事实证明解决方案非常简单。只需将根卷组扩展几个字节,类型就会自动固定为 ext4。
lvextend -L +512B /dev/mapper/local-root
我在这里找到了解决方案:https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/1011007
答案2
我遇到了类似的问题。但是,我的 LVM 卷组已满,所以我无法尝试其他解决方案中提到的 hack。
相反,我过去常常wipefs
看到我的分区实际上有 2 个签名。一个是正确的 (ext4)。另一个是不正确的 (silicon_medley_raid_member)。
首先,我使用与我的 Ubuntu 版本(14.04)匹配的 LiveUSB 启动。然后我运行这个来查看两个签名:
sudo wipefs -n /dev/mapper/local-root
输出结果如下:
offset type
----------------------------------------------------------------
0x4444 ext4 [filesystem]
LABEL: root
UUID: <redacted>
0xfffffff silicon_medley_raid_member (raid)
(改变补偿措施是为了保护无辜者。)
然后我运行这个来测试删除错误的签名。
sudo wipefs -n -o 0xfffffff /dev/mapper/local-root
0xfffffff
从第一个命令列出的偏移量在哪里。
最后,我再次运行它,但-n
实际上并没有将更改写入磁盘。
sudo wipefs -o <offset> /dev/mapper/local-root
现在blkid /dev/mapper/local-root
显示TYPE
为ext4
。
是非常小心使用时wipefs
。操作前应先备份。如果您实际上没有看到两个签名,则绝对不要使用此方法。