升级Ubuntu 11.10到12.04后,开机报错“no partition found”,进入Grub后,输入"ls"命令,也报错“no partition found”。可见Grub已经崩溃了。
于是我下载了UNetbootin,然后利用它在Win 7下制作Ubuntu自启动U盘。制作好之后,结果发现不会自动引导启动,需要在开机之后出现Thinkpad欢迎界面时按F12,然后选择U盘启动。然后选择U盘启动Ubuntu,进入Ubuntu后按照 How to Fix Grub 2 中的方法安装Grub 2到硬盘。
To fix GRUB 2, you need an Ubuntu live CD from which you need to boot. Once you boot to the LIVE CD, open a terminal an and type these commands:
a) Firstly, you need to find out on which partition your Linux system is installed:
b) Now, we must mount this partition:
c) Install grub to the partition you've mounted:
Important: Please notice that it's "/dev/sda", not "/dev/sda1". "sda" is the hard disk on which your Linux distribution is installed!
d) Restart your computer. As previous Grub 2 entries are removed, run the following command to restore them:
sudo fdisk -l
(in my case, it's "sda1")
b) Now, we must mount this partition:
sudo mount /dev/sda1 /mnt
Where "sda1" is the partition where you installed Ubuntu (or any other Linux distro). It could be "sda5", "sda6", etc. for you.
c) Install grub to the partition you've mounted:
sudo grub-install --root-directory=/mnt/ /dev/sda
Important: Please notice that it's "/dev/sda", not "/dev/sda1". "sda" is the hard disk on which your Linux distribution is installed!
d) Restart your computer. As previous Grub 2 entries are removed, run the following command to restore them:
sudo update-grub
我以前是用USB Stick安装的Ubuntu,在安装过程中有一选项是选择引导程序的安装位置,默认是/dev/sdb,也就是U盘。因为当时我没注意,所以Grub 2被安装到了U盘,尽管事后重新安装到了硬盘上,但貌似升级后还是不太正常。
重启电脑进入Grub 2之后,输入命令(Grub 2中已经不再支持kernel命令,需要用linux指定kernel):
linux (hd0,X)/vmlinuz-3.2......
initrd (hd0,X)/initrd.img-3.2......
boot
悲哀的是系统启动到一半仍然无法进入GUI或者shell。多次检查测试后确认 / 所在的分区已经崩溃,Ubuntu根本无法识别。
虽然不想,但此时我已别无选择,只能重新安装Ubuntu 12.04了。可惜我电脑里那些尚未备份的文件和电影啊……