问题描述
我正在运行惠普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)
我一直在研究其他有这个问题的人,但一直没能找到任何解决方案来为我工作。
我尝试了here描述的方法,并且在最后的命令mount -t ntfs-3g /dev/sda1 /root -o force
之后,它什么都不做,并给我另一个(initramfs)提示。
我可以启动到活动CD(USB)并到达终端,但似乎并没有太大的好处,因为我可以在ls命令中看到/dev /sda1,但是当我尝试cd到它。
还有一个问题:使用命令fdisk -l
我怎么知道哪个挂载点(sda1 /sda2)是我的Windows分区,哪一个是Ubuntu?
最佳解决思路
在initramfs控制台中,我传递了一个命令出口来出现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
就这样,我没有任何错误地回到文件系统。
次佳解决思路
看起来你有一个糟糕的超级块。解决这个问题:
首先,启动进入Live 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?
问题并自动以yes自动回答它们
你应该得到类似的输出:
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
如果你能够执行上述命令,你很可能已经修复了你的错误。
现在,重新启动你的电脑,你应该可以正常启动。
(source)
第三种解决思路
实际上,解决方案很简单,只需编写fsck /dev/sdax
的命令(如下所示),并在控制台要求修复某些内容时提供Y
:
(initramfs) fsck /dev/sda1
要么
(initramfs) fsck /dev/sdaX
X
指定安装的磁盘部件号。
第四种思路
-
简单的答案是删除您的硬盘连接到其他系统并启动系统(请不要从您的initramfs错误硬盘启动任何与Ubuntu和
gparted
安装)。 -
启动
gparted
并选择您的硬盘,然后从右键菜单中选择CHECK。
第五种思路
我只是通过Live CD中的”Parted Magic”工具启动系统来尝试一个幸运的镜头。看看分区,Linux分区上有一些GBytes的”unknown space”。
所以我只是扩大了整个分区的Linux空间,并且从那时起我的Linux就像以前一样启动,而没有任何失败。