Intereting Posts

Система LFS не загружается или GRUB не может получить доступ / bood / grub при загрузке

Самый близкий вопрос, который я мог найти, это тот, но он все еще немного отличается от того, что мне нужно: GRUB не удается установить

Моя конкретная настройка и шаги, которые я выполнял, чтобы произвести это

Я пытаюсь создать проект Linux From Scratch, используя книгу 7.2. Я следовал за каждым шагом по пути и выполнял все те тесты, которые я мог сделать, чтобы убедиться, что после работы все работает правильно. Самое большое изменение, которое я должен был сделать, это разделение, у меня есть / dev / sda1 (as /), / dev / sda2 (as / home), / dev / sda3 (как swap) и / dev / sdb1 (as / source для компиляции).

Я выполняю установку на чистом жестком диске внутри VirtualBox, используя LiveCD в качестве ОС хоста. Таким образом, я столкнулся с очень небольшими проблемами вплоть до самого конца. Для компиляции ядра не очень важно, какие параметры мне нужно выбрать, поэтому я выбрал параметры по умолчанию с одним изменением, я убедился, что параметр «Драйверы устройств —> Общие параметры драйвера —> Поддерживает была проверена файловая система devtmpfs для монтирования в / dev ".

После выполнения остальных инструкций по настройке GRUB после перезагрузки процесс загрузки зависает со следующим выходом:

ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata3.00: ATA-6: VBOX HARDDISK, 1.0, max UDMA/133 ata3.00: 33554432 sectors, multi 128: LBA48 NCQ (depth 31/32) ata3.00: configured for UDMA/133 scsi 2:0:0:0: Direct-Access ATA VBOX HARDDISK 1.0 PQ: 0 ANSI: 5 scsi 4:0:0:0: CD-ROM VBOX CD-ROM 1.0 PQ: 0 ANSI: 5 List of all partitions: No filesystem could mount root, tried: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) Pid: 1, comm: swapper/0 Not tainted 3.5.2 #1 Call Trace: ? panic ? mount_block_root ? xen_write_msr_safe ? mount_root ? prepare_namespace ? kernel_init ? start_kernel ? kernel_thread_helper atkbd serio0: Spurious ACK on isa0060/serio0. Some program might be trying to access hardware directly. 

Поэтому, когда я впервые получил это, я подумал, что, возможно, это связано с ядром, возможно, я не выбрал то, что мне нужно было выбрать, и после небольшого поиска в Google я узнал, что должен убедиться, что " SATA_SIL ". Я также нашел сайт, в котором подробно описаны параметры ядра, которые необходимо включить для ядра, работающего в VirtualBox ( http://en.gentoo-wiki.com/wiki/Virtualbox_Guest ). Затем я восстановил свою машину до сохраненного состояния до того, как скомпилировал ядро ​​и перекомпилировал его с параметрами, указанными на этом веб-сайте, вместе с SATA_SIL.

Однако после длинной компиляции ядра я пошел вместе с книгой и выписал команду grub-install /dev/sda . Однако на этот раз, вместо установки, GRUB вернул следующую ошибку:

 Path to `/boot/grub' is not readable by GRUB on boot. Installation is impossible. Aborting. 

Моя первая мысль заключалась в том, что это как-то связано с разрешениями на файлы (потому что «не читается» действительно звучит как разрешения на доступ к файлам). Итак, просто чтобы увидеть, я установил / загрузочную папку (рекурсивно) на 777. Тем не менее успех. После этого я сделал некоторые поисковые запросы, но на самом деле не дал никаких значимых результатов.

Итак, следуя вместе с этим, я восстановил машину до версии, где GRUB работал, но не загружался, использовал ту же конфигурацию и перекомпилировал ядро ​​там (что мне пришлось добавить новый жесткий диск / dev / sdc , потому что в / dev / sdb1 недостаточно места для компиляции ядра с новыми параметрами). После повторной длинной компиляции я установил ядро, перезагрузил и … тот же самый свалку ошибок, что и раньше.

Основной вопрос

Итак, теперь я до такой степени, что, по-моему, мне может понадобиться помощь, если у кого-нибудь есть идеи, как я могу пройти эту ошибку загрузки и / или ошибку пути установки GRUB, это было бы здорово!

Дополнительная информация

Все мое программное обеспечение является точной версией версии LFS версии 7.2, полный список можно найти здесь: http://pastebin.com/TiJBhbce

Ниже приведен полный список структуры и настройки всех дисков на компьютере: root: ~ # fdisk -l

 Disk /dev/sda: 4294 MB, 4294967296 bytes 255 heads, 63 sectors/track, 522 cylinders, total 8388608 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xeeeb9d91 Device Boot Start End Blocks Id System /dev/sda1 2048 6293503 3145728 83 Linux /dev/sda2 6293504 6817791 262144 83 Linux /dev/sda3 6817792 8388607 785408 83 Linux Disk /dev/sdc: 17.2 GB, 17179869184 bytes 171 heads, 2 sectors/track, 98112 cylinders, total 33554432 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x4c41c1df Device Boot Start End Blocks Id System /dev/sdc1 2048 33554431 16776192 83 Linux Disk /dev/sdb: 4294 MB, 4294967296 bytes 43 heads, 32 sectors/track, 6096 cylinders, total 8388608 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xd3de256f Device Boot Start End Blocks Id System /dev/sdb1 2048 8388607 4193280 83 Linux 

И диск, который должен запускаться при перезагрузке, вот содержимое / dev / sda1:

 drwxr-xr-x 24 root root 4096 Feb 17 20:46 . drwxr-xr-x 3 root root 60 Feb 17 22:46 .. drwxr-xr-x 2 root root 4096 Feb 17 13:11 bin drwxr-xr-x 3 root root 4096 Feb 17 16:00 boot drwxr-xr-x 2 root root 4096 Feb 17 20:46 build drwxr-xr-x 2 root root 4096 Feb 16 20:06 dev drwxr-xr-x 12 root root 4096 Feb 17 15:52 etc drwxr-xr-x 2 root root 4096 Feb 16 13:11 home drwxr-xr-x 7 root root 4096 Feb 17 22:11 lib drwx------ 2 root root 16384 Feb 16 13:09 lost+found drwxr-xr-x 4 root root 4096 Feb 16 20:24 media drwxr-xr-x 2 root root 4096 Feb 16 20:24 mnt drwxr-xr-x 2 root root 4096 Feb 16 20:24 opt drwxr-xr-x 2 root root 4096 Feb 16 20:06 proc drwxr-x--- 3 root root 4096 Feb 17 22:14 root drwxr-xr-x 3 root root 4096 Feb 17 09:38 run drwxr-xr-x 2 root root 4096 Feb 17 14:36 sbin drwxr-xr-x 2 root root 4096 Feb 16 13:11 sources drwxr-xr-x 2 root root 4096 Feb 16 20:24 srv drwxr-xr-x 2 root root 4096 Feb 16 20:06 sys drwxrwxrwt 3 root root 20480 Feb 17 22:12 tmp drwxr-xr-x 13 root root 4096 Feb 16 18:51 tools drwxr-xr-x 9 root root 4096 Feb 16 20:24 usr drwxr-xr-x 11 root root 4096 Feb 16 23:26 var 

Я смог завершить LFS, я считаю, что причина, по которой GRUB давала указанную ошибку, состояла в том, что у меня не было все правильно смонтировано. Этот скрипт должен монтировать все по мере необходимости:

 export LFS=/mnt/lfs mkdir -p $LFS mount -v -t ext4 /dev/sda1 $LFS mount -v -t ext4 /dev/sda2 $LFS/home mount -v -t ext4 /dev/sdb1 $LFS/sources /sbin/swapon -v /dev/sda3 mount -v -t tmpfs -o size=20m tmpfs /tmp mount -v --bind /dev $LFS/dev mount -vt devpts devpts $LFS/dev/pts mount -vt proc proc $LFS/proc mount -vt sysfs sysfs $LFS/sys chroot "$LFS" /tools/bin/env -i \ HOME=/root \ TERM="$TERM" \ PS1='\u:\w\$ ' \ PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ /tools/bin/bash --login +h 

Что касается ошибки в том, что вы не можете загрузиться, это вызвано компиляцией ядра. Я использовал ext4 для своих жестких дисков, и мне нужно скомпилировать это в ядро, чтобы оно работало. Вот настройка ядра, которую я должен был использовать:

 Device Drivers ---> Generic Driver Options --> [*] Maintain a devtmpfs filesystem to mount at /dev File systems ---> <*> The Extended 4 (ext4) filesystem [*] Use ext4 for ext2/ext3 file systems [*] Ext4 extended attributes [*] Ext4 POSIX Access Control Lists [*] Ext4 Security Labels