Sistema LFS não está inicializando ou o GRUB não pode acessar / bood / grub na inicialização

1

A questão mais próxima que pude encontrar é essa, no entanto, ainda é um pouco diferente do que eu estou precisando: GRUB falha ao instalar

Minha configuração específica e as etapas que segui para produzir isso

Eu estou tentando construir o projeto Linux From Scratch, usando a versão de livro 7.2. Eu segui todos os passos ao longo do caminho, e executei todos os testes que eu poderia fazer para ter certeza de que tudo estava funcionando corretamente após a construção. A maior mudança que tive que fazer foi o particionamento, eu tenho / dev / sda1 (como /), / dev / sda2 (como / home), / dev / sda3 (como swap), e / dev / sdb1 (como / source para compilação).

Estou executando a instalação em um disco rígido vazio dentro do VirtualBox usando um LiveCD como sistema operacional host. Então, eu tive alguns problemas até o final. Para compilar o kernel, não é muito específico para quais opções eu preciso selecionar, então eu selecionei as opções padrão com uma mudança, eu me certifiquei da opção em "Device Drivers --- > Generic Driver Options --- > Manter um sistema de arquivos devtmpfs para montar em / dev "foi verificado.

Depois de seguir o restante das instruções sobre a configuração do GRUB, após a reinicialização, o processo de inicialização congela com a seguinte saída visível:

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.

Então, quando eu recebi isso pela primeira vez, eu pensei que talvez fosse algo a ver com o kernel, talvez eu não tenha selecionado o que eu tinha que selecionar, e depois de um pouco de googling, eu descobri que eu deveria fazer Certifique-se de que "SATA_SIL" esteja ativado. Eu também encontrei um site detalhando as opções do kernel que precisam ser ativadas para um kernel rodando no VirtualBox ( link ). Em seguida, restaurei minha máquina para o estado salvo logo antes de compilar o kernel e o recompilei com as opções especificadas nesse site, junto com SATA_SIL.

No entanto, após a longa compilação do kernel, eu fui junto com o livro e emiti o comando grub-install /dev/sda . No entanto, desta vez, em vez de instalar, o GRUB retornou o seguinte erro:

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

Meu primeiro pensamento foi que ele tinha algo a ver com permissões de arquivo (porque "não é legível" realmente soa como permissões de arquivo). Então, só para ver, eu configurei a pasta / boot (recursivamente) para 777. Ainda sem sucesso. Depois disso, fiz algumas pesquisas no google, mas realmente não retornei resultados significativos.

Então, acompanhando isso, eu restaurei a máquina para a versão onde o GRUB estava funcionando, mas não inicializava, usava a mesma configuração e recompilava o kernel lá (o que, eu tive que adicionar um novo disco rígido, / dev / sdc, porque não havia espaço suficiente em / dev / sdb1 para compilar o kernel com as novas opções). Depois de passar pela longa compilação novamente, eu instalei o kernel, reiniciei e ... o mesmo erro de descarga de antes.

A questão principal

Então, agora estou no ponto em que acho que posso precisar de ajuda, se alguém tiver alguma idéia de como eu posso passar por este erro de inicialização e / ou pelo erro do caminho de instalação do GRUB, seria ótimo!

Informações adicionais

Todo o meu software é a versão exata do LFS versão 7.2, uma lista completa pode ser encontrada aqui: link

Aqui está uma lista completa da estrutura e configuração de todas as unidades no computador:     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

E a unidade que deve iniciar como / após a reinicialização, aqui está o conteúdo de / 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
    
por Alex 18.02.2013 / 05:50

1 resposta

2

Eu consegui concluir o LFS, acredito que o motivo pelo qual o GRUB estava dando o erro especificado foi porque eu não tinha montado tudo corretamente. Este script deve montar tudo conforme necessário:

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

Quanto ao erro de não ser capaz de inicializar, isso estava sendo causado pela compilação do kernel. Eu estava usando o ext4 para meus discos rígidos, e tenho que compilar isso no kernel para que ele funcione. Aqui está a configuração do kernel que eu tive que usar:

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
    
por 19.02.2013 / 03:39

Tags