LFS 시스템을 시작할 수 없거나 GRUB가 시작 시 /boot/grub에 액세스할 수 없습니다.

LFS 시스템을 시작할 수 없거나 GRUB가 시작 시 /boot/grub에 액세스할 수 없습니다.

내가 찾을 수 있는 가장 가까운 질문은 이것이지만, 여전히 내가 필요한 것과는 매우 다릅니다.GRUB 설치 실패

이 콘텐츠를 생성하기 위해 수행한 정확한 설정과 단계

책 버전 7.2를 사용하여 Linux From Scratch 프로젝트를 빌드하려고 합니다. 저는 프로세스의 모든 단계를 따르고 가능한 모든 테스트를 수행하여 빌드 후 모든 것이 제대로 작동하는지 확인했습니다. 제가 수행해야 했던 가장 큰 변경 사항은 파티셔닝이었습니다. /dev/sda1(/로), /dev/sda2(/home으로), /dev/sda3(스왑으로) 및 /dev/sdb1(/source로)이 있습니다. 컴파일 중).

VirtualBox 내부의 빈 하드 드라이브에 설치를 수행하기 위해 LiveCD를 호스트 운영 체제로 사용하고 있습니다. 그래서 끝까지 문제가 거의 없었어요. 커널 컴파일을 위해 어떤 옵션을 선택해야 하는지는 그다지 구체적이지 않았기 때문에 변경하자마자 기본 옵션을 선택했습니다. "장치 드라이버 ---> 일반 드라이버 옵션---" > 유지 관리 a"가 확인되었습니다. 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.

그래서 처음 이 메시지를 받았을 때 저는 그것이 커널과 관련이 있을 수 있다고 생각했고 아마도 제가 해야 할 것을 선택하지 않았을 수도 있습니다. 인터넷 검색을 한 후에 "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.

내 첫 번째 생각은 파일 권한과 관련이 있다는 것이었습니다("읽을 수 없음"이 파일 권한처럼 들리기 때문입니다). 그래서 확인하기 위해 /boot 폴더를 (재귀적으로) 777로 설정했습니다. 아직도 성공하지 못했습니다. 그 후 몇 가지 인터넷 검색을 수행했지만 실제로 의미 있는 결과를 반환하지 않았습니다.

그래서 다음으로 동일한 구성을 사용하고 거기에서 커널을 다시 컴파일하여 작동하지만 부팅할 수 없는 GRUB 버전으로 시스템을 복원했습니다(/dev/sdb1에 공간이 충분하지 않기 때문에 새 하드 드라이브 /dev/sdc를 추가해야 했습니다). 새로운 옵션으로 커널을 컴파일하려면 커널을 사용하세요). 또 다른 긴 컴파일 후에 커널을 설치하고 재부팅했는데...전과 동일한 오류 덤프가 발생했습니다.

주요 문제

따라서 이제 도움이 필요할 것 같습니다. 누군가 이 부팅 오류 및/또는 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

답변1

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

관련 정보