Linux installation won’t boot due to GRUB «no such device» error
I think I’ve exhausted all I know to do, so I’m sending up the flares. I’ll try to cover it all (albeit, in pieces), so please be patient. I decided to install Linux Mint 11 where I previously had Ubuntu 10.10. Before this install, I had a partition with Windows XP, which—at some time in the distant past—I used to dual boot into. I removed the partition in this install. After installation, the system fails to boot. After the check for a CD/DVD, it prints:
error: no such device: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx GRUB rescue>
There were no problems booting Ubuntu. I seem to recall a similar issue last time I did an install (instead of an upgrade) to Ubuntu. It’s been a while, but I thought I fixed it using FIXMBR and/or FIXBOOT from the XP CD. Those did not work this time. The GRUB rescue> prompt seems to be broken. Even help doesn’t work. I am able to ls , which yields:
GRUB rescue> ls (hd0) (hd0,msdos1) (hd1) (hd1,msdos1) (hd2) (hd2,msdos5) (hd2,msdos3) (hd2,msdos2) (hd2,msdos1)
- Ch 0 Master: 250GB PATA (sda)
- sda1
- sdb1: /
- sdb2: /home
- sdb3: swap
- sdc1
I thought I’d struck gold when I discovered some lingering (and confounding) RAID metadata on sda. The drive hadn’t shown up in the Linux install before, but did after using dmraid -r -E /dev/sda . However, the boot failure persisted.
Until just now, I could use the Mint install CD to «Boot from Local Drive», which would indeed take me to my installation on sdb1. After using the CD to boot to the drive, and running the below, I’ve worsened the problem to giving a GRUB> prompt instead of booting to the drive.
# GRUB-install --no-floppy /dev/sdb1 # update-GRUB GRUB> find /boot/GRUB/stage1 GRUB> root (hd1,0) # result of above GRUB> setup (hd0)
There’s definitely a mismatch, because sdb, which has 3 partitions, seems to be (hd2) at the GRUB rescue> prompt, but (hd1) when actually booted. However, if I’ve used UUIDs (and I think I have), this shouldn’t be a problem. Using the live CD, I see sdb1:/boot/GRUB/menu.list to contain
# kopt=root=UUID=[UUID of sdb1] . # groot=[UUID of sdb1]
The root problem, as I understand it, is that GRUB is, for some reason I don’t understand, trying to boot a device that doesn’t exist. I don’t know how to determine what it’s looking for by the UUID given. I don’t see any UUIDs for anything on sda.
And now, I can’t even boot to the drive using the CD.
I thought putting the /boot partition on the same drive as the MBR might help, so I added sda2, set the boot flag, and reinstalled (which is probably overkill).
I again get the grub rescue> prompt, but now, when I ls , I get
grub rescue> ls (hd0) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1) (hd2) (hd2,msdos3) (hd2,msdos2) (hd2,msdos1)
So, sda is no more (hd0) at this prompt than sdb is (hd1). I don’t know why it’s so misaligned, nor why it matters. I may try again, putting /boot on sdc/(hd0).
Установка Linux не будет загружаться из-за ошибки GRUB «нет такого устройства»
Я думаю, что исчерпал все, что я знаю, чтобы сделать, поэтому я посылаю факелы. Я постараюсь охватить все это (хотя и по частям), поэтому, пожалуйста, будьте терпеливы. Я решил установить Linux Mint 11, где у меня ранее была Ubuntu 10.10. Перед этой установкой у меня был раздел с Windows XP, который — в далеком прошлом — я использовал для двойной загрузки. Я удалил раздел в этой установке. После установки система не загружается. После проверки CD/DVD он печатает:
error: no such device: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx GRUB rescue>
Не было проблем с загрузкой Ubuntu. Кажется, я вспомнил похожую проблему в прошлый раз, когда я установил (вместо обновления) Ubuntu. Это было какое-то время, но я решил исправить это с помощью FIXMBR и / или FIXBOOT с компакт-диска XP. Те не работали на этот раз. Похоже, что запрос GRUB rescue> не работает. Даже help не работает. Я могу ls , что дает:
GRUB rescue> ls (hd0) (hd0,msdos1) (hd1) (hd1,msdos1) (hd2) (hd2,msdos5) (hd2,msdos3) (hd2,msdos2) (hd2,msdos1)
- Ch 0 Master: 250 ГБ PATA (SDA)
- sda1
- SDB1: /
- sdb2: /home
- sdb3: swap
- sdc1
Я подумал, что ударил в золото, когда обнаружил какие-то затяжные (и вызывающие недоумение) метаданные RAID на sda. Диск ранее не обнаруживался в установке Linux, но появился после использования dmraid -r -E /dev/sda . Однако ошибка загрузки сохраняется.
До сих пор я мог использовать установочный компакт-диск Mint для загрузки с локального диска, что действительно привело бы меня к установке на sdb1. После использования компакт-диска для загрузки с накопителя и запуска приведенного ниже, я усугубил проблему, предоставив приглашение GRUB> вместо загрузки с накопителя.
# GRUB-install --no-floppy /dev/sdb1 # update-GRUB GRUB> find /boot/GRUB/stage1 GRUB> root (hd1,0) # result of above GRUB> setup (hd0)
Несомненно, есть несоответствие, потому что sdb, который имеет 3 раздела, кажется (hd2) в приглашении GRUB rescue> , но (hd1) при фактической загрузке. Однако, если я использовал UUID (и я думаю, что использовал), это не должно быть проблемой. Используя live CD, я вижу, что sdb1:/boot/GRUB/menu.list содержит
# kopt=root=UUID=[UUID of sdb1] . # groot=[UUID of sdb1]
Основная проблема, насколько я понимаю, заключается в том, что GRUB по какой-то причине, которую я не понимаю, пытается загрузить устройство, которое не существует. Я не знаю, как определить, что он ищет по указанному UUID. Я не вижу UUID для чего-либо на SDA.
И теперь я даже не могу загрузиться с диска, используя CD.
Я подумал, что размещение раздела /boot на том же диске, что и MBR, может помочь, поэтому я добавил sda2, установил флаг boot и переустановил (что, вероятно, излишне).
Я снова получаю приглашение grub rescue> , но теперь, когда я получаю ls , я получаю
grub rescue> ls (hd0) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1) (hd2) (hd2,msdos3) (hd2,msdos2) (hd2,msdos1)
Таким образом, sda не больше (hd0) в этом приглашении, чем sdb (hd1). Я не знаю, почему это так смещено, и почему это важно. Я могу попробовать еще раз, поставив /boot на sdc/(hd0).
Boot error > no such device: grub rescue [duplicate]
After an installation of Ubuntu 12.04, erasing an old partition with Ubuntu 10.10, I can’t get grub to load. I can’t access my Windows 7 partition either I get the message:
> error: no such device: 58ABF29C. grub rescue>
If your MBR were erased, GRUB would not run at all. What is happening here is that the MBR code is running, and has been told to look on the partition with the UUID of 58abf29c. for the configuration menu. Most likely, this was the partition you erased, so it doesn’t exist anymore. The easiest way to fix it would be to download the grub boot repair CD, which will probably fix it automatically.
3 Answers 3
- Boot using a live cd of ubuntu.
- Open a terminal and run the command
sudo fdisk -l
It lists the complete partition table of the hard disk. In there, identify which partition you have got your linux installed on. You can identify it using the drive size you had allocated for it and looking at the last column of the output which will be extended or Linux for all of your linux partitions. The partition will most probably be something like /dev/sda5 or something. Remember this partition. - Create a temporary folder in your home directory (Note: You can make the temporary folder anywhere you want. I’m using the home folder just for the sake of explanation). I’m calling it temp for now. So that temp folder’s path will be /home/ubuntu/temp`.
- Mount your linux partition there. That is, assuming that you found your linux partition to be /dev/sda5 , you mount that at the temp folder by doing the following command sudo mount /dev/sda5 /home/ubuntu/temp
- If you want to check whether you have mounted the correct partition, go to your home folder and open temp. You will be in the / directory. In there you will find home , in which your home folder’s name will be there. Once you’ve confirmed you have mounted the correct partition, do step 6.
- You have to install grub by showing the system where to read the data from the hard disk at the beginning. Don’t worry, just run the following command sudo grub-install —root-directory=/home/ubuntu/temp /dev/sda The /dev/sda corresponds to your hard disk name. Replace it by whatever the command sudo fdisk -l command showed you.
- You’re done. You may restart your system.
1. Are you sure sdb is is your hard disk’s name? Confirm that. 2. /dev/sdb2 might be your logical partition container and not the partition in which you installed ‘/’. So try sdb3 or an other partitions that you have on your system.
/dev/sdb is plausible too, as it has 40 GB, but it doesn’t specify «Extended» or is marked as boot, when I try to mount /dev/sdb I get: mount: /dev/sdb already mounted or /home/ubuntu/temp busy
Снова «no such device» на msi gs 70
Если вы не убирали из mkinitcpio.conf хук base , после выдачи этой ошибки вы должны были попасть в аварийный шелл, который вполне позволяет проверить, какие у вас обнаружены дисковые устройства, например, той же командой blkid.
Если устройство таки обнаружено, вы его увидите.
Если нет – значит либо оно не определилось, либо у вас в initramfs нет модуля для него.Так или иначе, при правильной установке возникновение такой ошибки практически невозможно.
Если вы не убирали из mkinitcpio.conf хук base , после выдачи этой ошибки вы должны были попасть в аварийный шелл, который вполне позволяет проверить, какие у вас обнаружены дисковые устройства, например, той же командой blkid.
После выдачи этой ошибки меня кинуло в аварийный граб(grub rescue)
Если устройство таки обнаружено, вы его увидите. Если нет – значит либо оно не определилось, либо у вас в initramfs нет модуля для него.
При загрузке с флешки устройство видится и его UUID читается, плюс, при использовании syslinux все работает и без проблем грузится.
Natrio
после выдачи этой ошибки вы должны были попасть в аварийный шелл, который вполне позволяет проверить, какие у вас обнаружены дисковые устройствану и смотри … и дополнительно почитай про аварийную консоль . и даже можно попробовать загрузиться в ручную из консоли Grub, если все нормально ….
Natrio
после выдачи этой ошибки вы должны были попасть в аварийный шелл, который вполне позволяет проверить, какие у вас обнаружены дисковые устройстваНе так понял сообщение. Читал про аварийный граб и пытался из него запуститься в нормальный режим через insmod, но не вышло. Кстати, обратил внимание, что при команде ls он просто выдает список из моих двух дисков (hd0) и (hd1), а вот разделы их почему-то не показывает, хотя исходя из гугления, вполне себе должен показывать. Пытался наугад ему в префикс прописать раздел, пробовал и 0, и 1, но ничего, он почему-то просто не видит эти разделы.
nnj413
Читал про аварийный граб и пытался из него запуститься в нормальный режим через insmod, но не вышло. Кстати, обратил внимание, что при команде ls он просто выдает список из моих двух дисков (hd0) и (hd1), а вот разделы их почему-то не показывает, хотя исходя из гугления, вполне себе должен показывать. Пытался наугад ему в префикс прописать раздел, пробовал и 0, и 1, но ничего, он почему-то просто не видит эти разделы.Вроде процедура расписана понятно. но на всякий случай уточняю в самом общем случае
ls — список доступных разделов
set prefix=(hdN,n)/boot/grub
set root=(hdN,n)
( счет дисков N начинается с 0, а счет разделов n — с 1)
ls /boot
ls /boot/grub
(уточняем/проверяем список нужных файлов и если все нормально, можно идти дальше)
insmod ext2
insmod normal
normal
(и должны попасть в меню/(полнофункциональный режим) Grub и если все нормально, то автоматически должны найтись все операционки, которые можно подгружать)PS . если, что не так, Natrio уточнит .