警报!/ dev / disk / by-uuid / xxxxxxxxx不存在。放到壳上


28

我正在使用Ubuntu 14.04。

我在终点站跑了sudo apt-get update。然后,我重新启动了系统。现在我看到:

ALERT! /dev/disk/by-uuid/xxxxxxxxx does not exist. Dropping to a shell
initramfs:_

我无法从USB闪存驱动器启动LIVE Ubuntu。是的,我再次检查了BIOS设置,并且USB闪存驱动器正常,可以在另一台计算机上运行。现在,我要购买DVD,然后从另一台笔记本电脑刻录Live DVD。

sudo blkid 给我:

/dev/loop0: TYPE="squashfs"  
/dev/sda1: UUID="xxxx" TYPE="ext4"   
/dev/sr0: LABEL="Ubuntu 14.04.1 LTS i386" TYPE="iso960"   

/etc/fstab具有相同的内容,UUID="xxxx"并有一行:

errors=remount-ro 0   

我尝试使用引导修复,但仍然无法登录Ubuntu。

我不想重新安装Ubuntu,因为那里有很多数据。

您有什么建议可以解决吗?


1
sudo blkid从终端运行(如果需要,可以从实时DVD 运行),并检查UUID是否/etc/fstab已存在。或将两个结果都张贴到您的问题中。如何sudo blkid从实时DVD 运行:从Ubuntu动态磁盘启动,在启动时单击Try Ubuntu选项。打开终端(Ctrl + Alt + T),然后sudo blkid在其中运行命令。最后,将其输出发布到您的问题中。
karel 2014年

1
好的@karel sudo blkid给了我 /dev/loop0: TYPE="squashfs" /dev/sda1: UUID="xxxx" TYPE="ext4" dev/sr0: LABEL="Ubuntu 14.04.1 LTS i386" TYPE="iso960" / etc / fstab相同的UUID =“ xxxx”,并且有一行写着错误= remount-ro 0 –
Marcin Gorski

1
在运行boot-repair后,我有这个Boot-repair日志
Marcin Gorski 2014年

然后我仍然无法登录ubuntu ...
Marcin Gorski 2014年

3
@MarcinGorski,请添加您的解决方案作为答案并标记为接受,而不是编辑问题。
muru

Answers:


25

解决方案是从liveDVD执行这些命令,它使我可以从该liveDVD在sda1上执行操作(据我所知)

sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
update-initramfs -u
update-grub
reboot

我的一个来自ubuntu pl论坛的朋友帮助我解决了这个问题。

他发现initramfs中可能存在错误,应将其作为内核更新的一部分进行更新。如果在更新期间发生任何问题,可能会发生像我这样的问题。


4
好帖子。我想补充一点,不一定是Ubuntu sda1。为了帮助确定它的安装位置,请运行sudo fdisk -l。假设您知道安装了Ubuntu的硬盘驱动器,那么该命令应该可以帮助您确定哪个sd *映射到该驱动器。
ubiquibacon,2015年

我在Ubuntu MATE 17.04(新安装)上尝试了此操作,不幸的是它没有帮助...
Dominic Hayes

1
我得到的WARNING: missing /lib/modules/4.2.0-16-generic原因是LiveCD具有不同的内核版本。所以,我已经安装tmplib并且lib64然后一切工作。
马克斯·马里什

我必须指定要为ext4分区(mount -t ext4 /dev/sda1 /mnt)挂载的文件系统,否则效果很好。
Shane

-2

人们可能会对此不满意,但我发现/dev/sdX对个人系统而言,使用“ ”比对UUID更为可靠。在企业环境中,我将花费更多的精力使其与UUID而不是“ / dev /”地址一起使用,但是您应该安全地使用/dev/sdaXin /etc/fstab代替UUID引用,至少可以在您启动系统时使用尽管/ etc / fstab中有正确的UUID,仍继续寻找导致引导完全失败的原因的答案。

如果您想走这条路线,请使用以下步骤:

  1. 引导至恢复外壳或引导至活动的USB驱动器或CD

  2. 挂载无法引导的系统分区

  3. /etc/fstab步骤2中提到的系统分区中的文件编辑为root,并在所有相关条目中替换UUID=XXXXX为相应的/dev/sdX标签/etc/fstab

注意:据我所知,此过程对于Ubuntu和Ubuntu派生发行版是可靠的(在撰写本文时;在以后的任何发行版中都可以轻松更改)。我知道,对于某些其他发行版(例如knoppix或Arch Linux),它不能可靠地工作(这是由于UDEV扫描设备并在/ dev文件系统中给它们命名的方式不同)。如果您使用的是非Ubuntu发行版,请不要使用此方法,否则后果自负。


感谢您的帮助@MGodby,但我已经找到了解决方案。
Marcin Gorski 2014年

4
您的方法是旧方法,由于相当好的理由而被替换,主要是因为驱动器编号不是恒定的,并且有可能从意外的驱动器启动。对于UUID,这是不可能的。但是我经常使用“ LABEL = ___”格式,只是因为可以立即清楚地看到什么。范例:LABEL=data_partition
马蒂·弗里德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.