我正在运行 HP pavilion dv6000 双启动 win7 和 Ubuntu 12.04。(嗯,直到今天)。重新启动后,启动过程进入 BusyBox shell,我最终看到提示符:
BusyBox v1.18.5 (Ubuntu 1:1.18.5-1ubuntu4) built-in shell (ash)
Enter 'help' for a list of built-in commands.
(initramfs)
我一直在研究遇到同样问题的其他人,但没有找到适合我的解决方案。
我尝试了描述的方法这里,并在最后一条命令之后
mount -t ntfs-3g /dev/sda1 /root -o force
它什么也不做,并给我另一个(initramfs)提示。
我可以启动到实时 CD(USB)并进入终端,但它似乎没有多大用处,因为我可以在 ls 命令中看到 /dev/sda1,但是当我尝试通过 cd 转到它时它无法识别它。
还有一个问题:使用命令fdisk -l
我如何判断哪个挂载点(sda1
/ sda2
)是我的 Windows 分区以及哪个是 Ubuntu?
答案1
在初始化内存文件系统控制台,我传递了一个命令出口从 shell 中出来。同样的控制台出现在我面前,但这次损坏分区的确切名称。
BusyBox v1.18.5 (Ubuntu 1:1.18.5-1ubuntu4) built-in shell (ash)
Enter 'help' for a list of built-in commands.
(initramfs) exit
/dev/mapper/ubuntu--vg-root: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
fsck exited with status code 4.
The root filesystem on /dev/mapper/ubuntu--vg-root requires a manual fsck.
BusyBox v1.18.5 (Ubuntu 1:1.18.5-1ubuntu4) built-in shell (ash)
Enter 'help' for a list of built-in commands.
(initramfs) fsck /dev/mapper/ubuntu--vg-root -y
fsck from util-linux 2.27.1
e2fsck 1.42.13 (17-May-2015)
/dev/mapper/ubuntu--vg-root contains a file system with errors, check forced.
检查完成后,我重新启动了系统。
BusyBox v1.18.5 (Ubuntu 1:1.18.5-1ubuntu4) built-in shell (ash)
Enter 'help' for a list of built-in commands.
(initramfs) reboot
如果reboot
不起作用,请尝试exit
。
就这样,我毫无错误地回到了文件系统。
答案2
fsck /dev/sdax
实际上解决方案很简单,只需编写如下所示的命令,并Y
在控制台要求修复某些问题时给出提示:
(initramfs) fsck /dev/sda1
或者
(initramfs) fsck /dev/sdaX
X
指定已安装的磁盘部件号。
如果您不想每次要求修复时手动按“y”,您也可以使用该-y
选项运行该命令。
(initramfs) fsck /dev/sdaX -y
答案3
笔记:如果您在尝试以下步骤后仍然遇到问题,请尝试此答案@ramsudharsan 的回答。如果您还没有尝试按照这些说明操作,我建议您这样做,因为这在大多数情况下似乎可以解决问题。
看来您的超级块有问题。要修复此问题:
首先,启动 CD 或 USB
使用以下方法找出分区号
sudo fdisk -l|grep Linux|grep -Ev 'swap'
然后,使用以下命令列出所有超级块:
sudo dumpe2fs /dev/sda2 | grep superblock
替换sda2
为您的驱动器号
你应该得到类似的输出
Primary superblock at 0, Group descriptors at 1-6
Backup superblock at 32768, Group descriptors at 32769-32774
Backup superblock at 98304, Group descriptors at 98305-98310
Backup superblock at 163840, Group descriptors at 163841-163846
Backup superblock at 229376, Group descriptors at 229377-229382
Backup superblock at 294912, Group descriptors at 294913-294918
Backup superblock at 819200, Group descriptors at 819201-819206
Backup superblock at 884736, Group descriptors at 884737-884742
Backup superblock at 1605632, Group descriptors at 1605633-1605638
Backup superblock at 2654208, Group descriptors at 2654209-2654214
Backup superblock at 4096000, Group descriptors at 4096001-4096006
Backup superblock at 7962624, Group descriptors at 7962625-7962630
Backup superblock at 11239424, Group descriptors at 11239425-11239430
Backup superblock at 20480000, Group descriptors at 20480001-20480006
Backup superblock at 23887872, Group descriptors at 23887873-23887878
从此列表中选择一个备用超级块,本例中备用超级块编号为 32768
现在,使用备用超级块#32768 检查并修复 Linux 文件系统:
sudo fsck -b 32768 /dev/sda2 -y
该-y
标志用于跳过所有Fix?
问题并自动回答所有问题
您应该获得类似这样的输出:
fsck 1.40.2 (12-Jul-2007)
e2fsck 1.40.2 (12-Jul-2007)
/dev/sda2 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong for group #241 (32254, counted=32253).
Fix? yes
Free blocks count wrong for group #362 (32254, counted=32248).
Fix? yes
Free blocks count wrong for group #368 (32254, counted=27774).
Fix? yes
..........
/dev/sda2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda2: 59586/30539776 files (0.6% non-contiguous), 3604682/61059048 blocks
现在尝试挂载分区
sudo mount /dev/sda2 /mnt
现在,尝试使用以下命令浏览文件系统
cd /mnt
mkdir test
ls -l
cp file /path/to/safe/location
如果您能够执行上述命令,则您很可能已经修复了错误。
现在,重新启动计算机,您应该能够正常启动。
(来源)
答案4
答案略有不同(Ubuntu 16.04),尽管其他答案最终也让我找到了它。
我首先必须选择一个恢复模式内核才能看到错误消息并知道哪个分区/文件系统出现了错误。
从那时起,跑步fsck /dev/sdb1/ -y
就帮我解决了这个问题。