问题
我面临的问题是,在 GRUB 中选择 Ubuntu 后,在启动时出现以下错误:
Error: File "/vmlinuz-3.13.0-24-generic.efi.signed" not found.
unaligned pointer 0xd0a26c68
Aborted. Press any key to exit.
我已经发布了有关此问题的问题这里,但是由于很多事情发生了变化,所以我提出了这个问题。
我的设置
我在安装过程中遇到了一些不同的麻烦,因为我的设置具有完全加密的根目录。此外,UEFI 和 GPT 也存在问题,尤其是无法让所有东西与 Windows 配合使用。由于安装时间已经很久了,我不记得任何细节了。
在我的 Ubuntu 硬盘上,我有三个主要分区:
- /dev/sda1:fat32,启动标志。
这应该是 EFI 分区(/boot/efi,不是吗?) - /dev/sda2: ext2
应该是 /boot - /dev/sda3:crypt-luks
加密容器,包含根目录和交换目录
故障排除
在我从 USB 启动的实时系统中,我发现了以下问题:
鹦鹉螺中的错误
单击 nautilus 中已安装的启动分区 (/dev/sda2) 会出现以下错误:
Sorry, could not display all the contents of “boot”: Error when getting information for file '/media/ujosh/root/boot/System.map-3.11.0-17-generic': Input/output error
更新 initramfs 时出错
尽管如此,我还是可以挂载所有三个分区,并通过 mount --bind 将它们组合在一起,这样我就可以 chroot 到我的系统中。在那里,我运行
apt-get update
apt-get dist-upgrade
一切都按预期进行,直到
update-initramfs: Generating /boot/initrd.img-3.13.0-24-generic
cat: /proc/cmdline: No such file or directory
gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.13.0-24-generic with 1.
dpkg: error processing package initramfs-tools (--configure):
subprocess installed post-installation script returned error exit status 1
No apport report written because MaxReports is reached already
Errors were encountered while processing:
linux-image-3.13.0-24-generic
grub-efi-amd64
grub-efi-amd64-signed
linux-image-extra-3.13.0-24-generic
linux-signed-image-3.13.0-24-generic
linux-signed-image-generic
linux-signed-generic
initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)
启动修复没有帮助
我也在设置上运行了启动修复,最终在更新 initramfs 时触发了与上述相同的错误。
运行文件系统检查
在@zoid 的帮助下,我对我的 /boot-partition 进行了以下测试:enter code here
sudo fsck.ext2 -p -f -C0 /dev/sda2
/dev/sda2: Inode 29 has illegal block(s).
/dev/sda2: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
sudo fsck.ext2 -f -C0 /dev/sda2
sudo smartctl -H /dev/sda
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-24-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
sudo smartctl -A /dev/sda
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-24-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0
9 Power_On_Hours 0x0032 099 099 000 Old_age Always - 2869
12 Power_Cycle_Count 0x0032 098 098 000 Old_age Always - 1836
177 Wear_Leveling_Count 0x0013 098 098 000 Pre-fail Always - 48
179 Used_Rsvd_Blk_Cnt_Tot 0x0013 100 100 010 Pre-fail Always - 0
181 Program_Fail_Cnt_Total 0x0032 100 100 010 Old_age Always - 0
182 Erase_Fail_Count_Total 0x0032 100 100 010 Old_age Always - 0
183 Runtime_Bad_Block 0x0013 100 100 010 Pre-fail Always - 0
187 Uncorrectable_Error_Cnt 0x0032 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0x0032 062 050 000 Old_age Always - 38
195 ECC_Error_Rate 0x001a 200 200 000 Old_age Always - 0
199 CRC_Error_Count 0x003e 253 253 000 Old_age Always - 0
235 POR_Recovery_Count 0x0012 099 099 000 Old_age Always - 128
241 Total_LBAs_Written 0x0032 099 099 000 Old_age Always - 6450810314
我的问题
如何恢复我的 /boot 分区?我认为
/boot 分区损坏是导致整个问题的原因。我的 /boot 分区出了什么问题?为什么会发生这种情况?我的整个生产操作系统都坏了,我想知道将来如何避免这种情况。
非常感谢您的帮助!
答案1
“输入/输出错误”表示读写错误,可能是磁盘缺陷导致的。似乎无法读写块,因此无法修改分区。
我建议备份磁盘上的所有个人数据,并使用您选择的工具检查文件系统。
- 更新 -
对于文件系统检查你可以使用
fsck.ext2 -p -f -C0 /dev/sda2
它将检查文件系统(-f),向您提供一些正在发生的信息,显示进度条(-C0)并询问您是否应该尝试修复主要问题(-p)。
如果你遇到很多问题,我建议安装
smartmontools
然后运行
sudo smartctl -H /dev/sda
快速测试
sudo smartctl -t long /dev/sda
彻底检查硬盘
sudo smartctl -a /dev/sda
显示硬盘状态
sudo smartctl -A /dev/sda
显示硬盘属性。
答案2
我回来了!
使用 fsck.ext2 确实解决了问题。在sudo fsck.ext2 -f -C0 /dev/sda2
回答所有问题“是”之后(参见问题),文件系统就修复了。
之后,我解锁了加密分区,挂载了所有内容,并进入了系统。在那里,我运行了apt-get dist-upgrade
。之后,grub 在启动时进入了 grub 命令行。
我回到实时系统并随后运行了引导修复。之后,我必须重新配置我的加密设置,请参阅通过Ubiquity加密文件系统。
现在,我可以再次使用我的系统了。网络不知怎么断了,虽然连接正常,但我无法在程序中使用互联网。sudo dhclient wlan0
修复了这个问题,只持续了一个会话。