我在 Ubuntu 16 上,我正在尝试修复我的启动磁盘。我已按照此处的说明进行操作,但是一旦我处于恢复模式的 root 访问权限,它仍然说磁盘已安装且无法运行。如果我尝试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
Run Code Online (Sandbox Code Playgroud)
(显然,我是在另一台计算机上输入的)我省略了尺寸,希望很清楚。
我也试过了umount -lf /
。这样做之后,当我运行时fsck
,我收到一条消息,指出由于缺少 mtab 文件,它无法检查文件系统是否已安装。
Ter*_*nce 18
要检查 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
Run Code Online (Sandbox Code Playgroud)
正如我们所看到的,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
Run Code Online (Sandbox Code Playgroud)
正如我们所看到的,我们要检查的名称是/dev/xubuntu-vg/root
这样的,因此我们应该能够fsck
使用该名称运行
如果/dev/xubuntu-vg/root
不是ACTIVE
,我们需要激活它,以便我们可以对其进行检查。
lvchange -ay /dev/xubuntu-vg/root
Run Code Online (Sandbox Code Playgroud)
现在它应该是这样的:
# lvscan
ACTIVE '/dev/xubuntu-vg/root' [<19.04 GiB] inherit
inactive '/dev/xubuntu-vg/swap_1' [980.00 MiB] inherit
Run Code Online (Sandbox Code Playgroud)
现在我们可以fsck
在 LVM 卷上运行。
fsck /dev/xubuntu-vg/root
Run Code Online (Sandbox Code Playgroud)
或以假设是运行强制检查
fsck -fy /dev/xubuntu-vg/root
Run Code Online (Sandbox Code Playgroud)
添加屏幕截图,因为 VirtualBox 不允许我复制和粘贴。
希望这可以帮助!