我在使用 Ubuntu 16,我正在尝试修复启动盘。我已按照说明操作这里,但一旦我进入恢复模式的根访问权限,它仍然说磁盘已安装并且无法运行。如果我尝试sudo fsck -f /dev/sda3
,它只会回复:
fsck from util-linux
。有人知道为什么会这样吗?根据对这个问题,当 fsck 报告此命令时,您必须使用 fsck.ext4。但是,当我这样做时,我仍然收到有关卷正在使用的消息。
我看到有关于 Ubuntu 18 的另一个问题,但没有答案。
大多数答案都建议使用 Live Disk,但是 Etcher 目前无法在 MacOS 上运行,并且从恢复命令提示符完成此操作肯定是合理的。
这是在戴尔 Inspiron 笔记本电脑上安装的原始 Ubuntu。
执行后umount /dev/sda3
显示“/dev/sda3 未安装”。
执行后fsck.ext4 -f /dev/sda3
显示“/dev/sda3 正在使用中”。
lsblk /dev/sda 的输出显示:
sda disk
sda2 part
sda3 part
ubuntu--vg-root lvm /
sda1 part
(显然,我是在另一台电脑上输入的)我没有标明尺寸,希望大家看得清楚。
我也尝试过umount -lf /
。这样做之后,当我运行时fsck
,我收到一条消息,由于缺少 mtab 文件,它无法检查文件系统是否已挂载。
答案1
要检查 LVM,请按照以下步骤进行。
首先我们可以通过以下方式查看驱动器布局lsblk
:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
└─sda1 8:1 0 20G 0 part
└─xubuntu--vg-root 253:0 0 19G 0 lvm /
sr0 11:0 1 1024M 0 rom
我们可以看到 LVM 名为xubuntu--vg-root
,但我们无法fsck
在此名称上运行,因为它找不到它。我们需要获取完整名称。为此,我们将运行命令lvm lvscan
来获取 LV 名称,以便我们可以fsck
在 LVM 上运行。
以下命令应以sudo
或root
用户身份运行。
# lvscan
inactive '/dev/xubuntu-vg/root' [<19.04 GiB] inherit
inactive '/dev/xubuntu-vg/swap_1' [980.00 MiB] inherit
正如我们所见,我们要检查的名称是,/dev/xubuntu-vg/root
因此我们应该能够使用fsck
该名称运行
如果/dev/xubuntu-vg/root
不是ACTIVE
,我们需要激活它,以便我们可以对其进行检查
lvchange -ay /dev/xubuntu-vg/root
现在它看起来应该是这样的:
# lvscan
ACTIVE '/dev/xubuntu-vg/root' [<19.04 GiB] inherit
inactive '/dev/xubuntu-vg/swap_1' [980.00 MiB] inherit
fsck
现在我们可以在 LVM 卷上运行。
fsck /dev/xubuntu-vg/root
或者使用“假设是”运行强制检查
fsck -fy /dev/xubuntu-vg/root
由于 VirtualBox 不允许我复制和粘贴,因此添加屏幕截图。
希望这可以帮助!
答案2
你可以尝试这个命令:
sudo fsck.ext4 -f /dev/sda6
假设 Ubuntu 已开启/dev/sda6
。