/boot 中缺少 vmlinuz

/boot 中缺少 vmlinuz

我正在使用装有 Windows 7 和 Ubuntu 12.04 的笔记本电脑。我在分区调整大小后遇到了 grub 问题,最终发现是由于缺少内核文件而导致的问题(这些问题直到调整大小后一周才开始出现,在此期间计算机继续正常运行)。

通过从 12.04 LTS LiveCD chrooting 到我的硬盘安装,我最终能够恢复/boot/initrd-3.2.0.24-generic.img。通过vmlinuz从 LiveCD 的/casper/文件夹复制到,/boot/vmlinuz-3.2.0.24-generic我发现update-grub最终可以识别并将我的 Ubuntu 安装添加到 grub 菜单,这是我最初的问题。

然而,我的新问题是,当启动此安装时,我遇到了各种失败的模块和错误消息,通常速度太快,我甚至来不及阅读或记住;最后,我可以选择以低图形模式启动 Ubuntu、故障排除、命令提示符、网络等...选择低图形模式只会让我退出终端,提示我登录,但我的用户名和密码不起作用。

也许只是从 LiveCD 复制 vmlinuz 就导致了这些错误?我的问题是,vmlinuz在恢复我的内核时,同一个内核安装过程没有安装合适的'initrd-....'.img

我真的不想重新安装整个 Ubuntu 分区,因为我对用于研究工作的各种编程环境有很多自定义设置,而且我目前在国外,限制了我的带宽,而这对于恢复大部分软件来说是非常必要的。

但是,我确实有一个完整的映像和一个非启动分区的完整克隆(均通过 CloneZilla 完成);我只是不知道它们是否真的获取了我的私人“主页”文件夹,当我安装克隆时该文件夹声称无法读取。

答案1

您是否尝试过使用apt-get它来重新安装内核?


尝试启动与您的 Ubuntu 安装相匹配的 Live CD 或 USB chroot,然后执行以下命令。

apt-get -V install linux-generic linux-image-generic linux-headers-generic
  • 笔记:如果上述方法不起作用,您也可以尝试--reinstall执行remove上述任一包,然后再次尝试install

如果没有任何上述工作,请更新您的问题并提供其失败原因的详细信息。

上述建议是基于apt-get在虚拟机中升级全新安装的 Ubuntu 12.04 LTS 64 位内核所采取的措施。apt-get决定安装以更新内核的软件包包括linux-genericlinux-image-genericlinux-headers-generic

下面我附上了运行上述命令所得到的输出,apt-get以防万一有什么用处。

在我看来,和都是vmlinuz-3.2.0-25-generic通过initrd.img-3.2.0-25-generic运行update-initramfs脚本在安装后处理期间。因此,我怀疑仅将文件从一个安装复制到另一个安装是否可行,除非安装足够相同。

irrational@VB64Too:~$ sudo apt-get -V install linux-generic linux-image-generic linux-headers-generic
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
   linux-headers-3.2.0-25 (3.2.0-25.40)
   linux-headers-3.2.0-25-generic (3.2.0-25.40)
   linux-image-3.2.0-25-generic (3.2.0-25.40)
Suggested packages:
   fdutils (5.5-20060227-5)
   linux-doc-3.2.0 ()
   linux-source-3.2.0 (3.2.0-25.40)
   linux-tools (3.2.0.25.27)
The following NEW packages will be installed:
   linux-headers-3.2.0-25 (3.2.0-25.40)
   linux-headers-3.2.0-25-generic (3.2.0-25.40)
   linux-image-3.2.0-25-generic (3.2.0-25.40)
The following packages will be upgraded:
   linux-generic (3.2.0.23.25 => 3.2.0.25.27)
   linux-headers-generic (3.2.0.23.25 => 3.2.0.25.27)
   linux-image-generic (3.2.0.23.25 => 3.2.0.25.27)
3 upgraded, 3 newly installed, 0 to remove and 247 not upgraded.
Need to get 50.6 MB of archives.
After this operation, 216 MB of additional disk space will be used.
Do you want to continue [Y/n]? 
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main linux-image-3.2.0-25-generic amd64 3.2.0-25.40 [38.2 MB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main linux-generic amd64 3.2.0.25.27 [1,710 B]                          
Get:3 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main linux-image-generic amd64 3.2.0.25.27 [2,648 B]                    
Get:4 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main linux-headers-3.2.0-25 all 3.2.0-25.40 [11.4 MB]                   
Get:5 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main linux-headers-3.2.0-25-generic amd64 3.2.0-25.40 [958 kB]          
Get:6 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main linux-headers-generic amd64 3.2.0.25.27 [2,644 B]                  
Fetched 50.6 MB in 36s (1,398 kB/s)                                                                                                
Selecting previously unselected package linux-image-3.2.0-25-generic.
(Reading database ... 141202 files and directories currently installed.)
Unpacking linux-image-3.2.0-25-generic (from .../linux-image-3.2.0-25-generic_3.2.0-25.40_amd64.deb) ...
Done.
Preparing to replace linux-generic 3.2.0.23.25 (using .../linux-generic_3.2.0.25.27_amd64.deb) ...
Unpacking replacement linux-generic ...
Preparing to replace linux-image-generic 3.2.0.23.25 (using .../linux-image-generic_3.2.0.25.27_amd64.deb) ...
Unpacking replacement linux-image-generic ...
Selecting previously unselected package linux-headers-3.2.0-25.
Unpacking linux-headers-3.2.0-25 (from .../linux-headers-3.2.0-25_3.2.0-25.40_all.deb) ...
Selecting previously unselected package linux-headers-3.2.0-25-generic.
Unpacking linux-headers-3.2.0-25-generic (from .../linux-headers-3.2.0-25-generic_3.2.0-25.40_amd64.deb) ...
Preparing to replace linux-headers-generic 3.2.0.23.25 (using .../linux-headers-generic_3.2.0.25.27_amd64.deb) ...
Unpacking replacement linux-headers-generic ...
Setting up linux-image-3.2.0-25-generic (3.2.0-25.40) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.0-25-generic /boot/vmlinuz-3.2.0-25-generic
update-initramfs: Generating /boot/initrd.img-3.2.0-25-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.2.0-25-generic /boot/vmlinuz-3.2.0-25-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.2.0-25-generic /boot/vmlinuz-3.2.0-25-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.2.0-25-generic /boot/vmlinuz-3.2.0-25-generic
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-25-generic
Found initrd image: /boot/initrd.img-3.2.0-25-generic
Found linux image: /boot/vmlinuz-3.2.0-23-generic
Found initrd image: /boot/initrd.img-3.2.0-23-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done
Setting up linux-image-generic (3.2.0.25.27) ...
Setting up linux-generic (3.2.0.25.27) ...
Setting up linux-headers-3.2.0-25 (3.2.0-25.40) ...
Setting up linux-headers-3.2.0-25-generic (3.2.0-25.40) ...
Setting up linux-headers-generic (3.2.0.25.27) ...
irrational@VB64Too:~$

答案2

通过从 12.04 LTS LiveCD chrooting 到我的硬盘安装,我最终能够恢复/boot/initrd-3.2.0.24-generic.img。通过vmlinuz从 LiveCD 的/casper/文件夹复制到,/boot/vmlinuz-3.2.0.24-generic我发现update-grub最终可以识别并将我的 Ubuntu 安装添加到 grub 菜单,这是我最初的问题。

然而,我的新问题是,当启动此安装时,我遇到各种失败的模块和错误消息......

我最初会建议同样的事情,但必须找到一个比从实时媒体复制文件或仅在 chroot 中安装 linux-image-generic 更好的答案。

我的建议是查看/lib/modules/您的安装并选择您能找到的最新内核版本号,然后在 chroot 中安装相应的内核映像。要生成(initrd如果它不是自动创建的),您必须运行mkinitramfs否则将被调用的update-initramfs,但可能会拒绝从实时媒体运行。

我在这里发布了完整的说明:如何恢复 /boot 中已删除的文件?(vmlinuz 丢失,系统无法启动)

相关内容