我已经在 MacBook Air 上使用 Ubuntu 有一段时间了,一切都运行良好,直到今天,我的电池耗尽了,之后无法启动。
在我打开电脑大约 30 分钟后,在 Plymouth 徽标显示后,initramfs shell 出现了,我收到一条错误消息,内容类似于“没有 UUID xxxxxxx-xxxxx 的分区...”。之后我尝试运行,blkid
它给了我 /dev/sda1 和 /dev/sda3 的 UUID,它们分别是 EFI 分区和交换分区,但它没有给出我的 Ubuntu 安装所在的 /dev/sda2 的 UUID。然而,我收到了几行错误消息。第一个是
ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
最后是
blk_update_request: I/O error, den sda, sector 1050630 Buffer: I/O error on dev sda2, logical block 0, async page read
。
因此,我猜测硬盘可能已损坏,并尝试从 Live USB 启动,但出现错误,如“文件 /boot 不存在”。这很奇怪,因为我曾在这台笔记本电脑上使用过该 USB 启动,但我不知道这是否与问题有关。
是什么导致了这个问题?我该怎么做才能解决它?我将非常感激任何帮助!
更新:使用dd
命令写入我发现 sda2 上的字节 0 到 23 是我无法读取的字节。用零替换这些字节安全吗/dev/sda2
?/dev/null
更新 2:我尝试使用dd
覆盖硬盘的缺陷部分,但得到了与我尝试读取它们或执行blkid
更新 3:尽管出现无法找到的错误/boot
,但我还是能够从 Live USB 启动,我只需要等待一分钟左右。我能够启动 GParted,但收到很多错误消息,而且 GParted 甚至无法获取文件系统类型sda2
答案1
我能解决问题的唯一方法是重新安装 Ubuntu。
我所做的是从 Live USB 启动,然后我必须通过以下方式用零覆盖磁盘的缺陷部分:
sudo dd if=/dev/zero of=/dev/sda2 count=24 bs=1024
只是我不小心输入了bs=1m
而不是bs=1024
,所以我删除了比我预期更多的数据。如果我没有这样做,也许我就不必重新安装 Ubuntu 了。
无论如何,dd
命令执行后,安装程序按预期运行,Ubuntu 安装成功。我丢失了所有数据,但至少笔记本电脑还能用。