GRUB 2.0 명령줄에서 Linux 배포판을 시작하고 싶습니다. 여러 배포판에 대해 이 작업을 시도했는데 "가장 좋은" 경우에는 initramfs
배포판이 표준 모드에서 실행 중이면 GUI가 시작되지 않는다는 메시지가 표시됩니다. 결과 파일 시스템에는 initrd 파일(100Mb 미만)에는 파일이 포함되어 있지만 filesystem.squashfs(1GB보다 큼)에는 포함되지 않은 것으로 보입니다.
vmlinux, initrd 및 filesystem.squashfs 파일은 casper
폴더에 있고 배포판의 grub.cnf 메뉴 항목에 있는 linux 명령에 있습니다 . 캐스퍼가 지속된다는 것을 이해하는 한 커널 옵션이 작동하는 데 boot=casper
폴더 이름이 필요하지 않은 것 같습니다 . casper
섹스 관련 옵션 위키피디아.
또한 이 문제에 대해 제가 이해한 바로는 부팅 프로세스가 Unionfs 작업을 수행하려고 할 때 커널 배포 콘텐츠를 제외한 모든 내용이 포함된 SquashFS 파일을 찾을 수 없습니다. 그것이 어디에 있는지 어떻게 알 수 있나요? 문제가 다른 근본 원인에 있을 수도 있습니다. 알려주세요.
0 추가: linux (hd0,msdos2)/casper/vmlinuz
add 명령을 변경했는데 root=UUID=what ls command gives for partition with distro
이제 시작되고 많은 줄이 표시되고 stdin: Not a typewriter
CLI (initramfs) Unable to find a medium containing live file system
프롬프트가 계속해서 표시됩니다. 화면의 표준 출력은 루트 옵션이 없는 것과 같은 줄입니다... 기억이 잘 나지 않습니다. 시작하는 동안 줄이 너무 많았습니다.
GRUB 매뉴얼과 시행착오에서 제가 이해한 바에 따르면 root
변수는 장치 내의 경로가 아닌 장치만 가리킬 수 있으므로 설정이 캐스퍼 폴더 내의 squashfs 파일을 가리키지 않는다는 것을 알 수 있습니다.
1개 추가: 팔로우 grep -rnw 'initrd file loop mounted location' -e 'filesystem.squashfs'
했습니다https://stackoverflow.com/questions/16956810/how-do-i-find-all-files-포함-특정-텍스트-on-linux하지만 아무것도 얻지 못했기 때문에 init 프로세스가 어떻게 squashfs 파일을 찾았는지 알 수 없습니다.
답변1
부트스트래핑을 위해서는 다음을 지정해야 합니다.운영 체제그리고초기화 프로그램그렇지 않으면 문제가 발생할 수 있습니다.
Linux 섹션에서는 루트 디렉터리에 이미 디스크/파티션을 지정했으므로 경로를 지정하기 전에 디스크/파티션을 포함해서는 안 됩니다. 예제에서는 /dev/sda1을 넣었지만 sdb나 다른 것일 수도 있습니다.
리눅스 /casper/vmlinuz-version-pae 루트=/dev/sda1
그런 다음 이 단계에서 initrd를 지정해야 합니다. 루트는 이미 지정했으므로 지정할 필요가 없습니다.
initrd /casper/initrd.img-버전-pae
마지막으로 boot를 입력하면 시스템이 정상적으로 부팅됩니다.
시작하다