내 컴퓨터에는 Arch Linux가 설치되어 있지만 /dev/sda5
다른 파티션( )에는 Slackware도 설치되어 있습니다.
/etc/grub.d/40_custom
시작 시 메뉴 목록에 Slackware를 추가하기 위해 파일을 통해 Arch Linux 설치에서 Grub2를 구성하고 싶습니다 .
오랫동안 온라인으로 검색했지만 Slackware에도 Grub을 설치해야 하는지, 구성 파일에 정확히 무엇을 넣어야 하는지에 대한 답변을 찾지 못했습니다.
grub에 대한 전체 문서를 읽는 것이 너무 깁니다.
다음을 시도했지만 Slackware를 로드하는 동안 "청크를 찾을 수 없습니다"와 같은 커널 패닉이 발생했습니다.
menuentry "Slackware 14.0" {
set root='hd0,msdos5'
echo 'Loading Linux Slackware 14.0 ...'
linux /boot/vmlinuz root=UUID=xxxXXxx-xx-XXX... ro acpi=off
}
답변1
내 Ubuntu 시스템에서 다음을 실행하여 grub-mkconfig
새로 설치된 파티션을 찾으세요. 수동 변경 없이 다음을 실행할 수 있습니다.
grub-mkconfig | diff - /boot/grub/grub.cfg
Arch Linux가 동일한 작업을 수행할 수 있는지 살펴보겠습니다. 그렇다면 다음을 실행하십시오.
grub-mkconfig -o /boot/grub/grub.cfg
답변2
initrd 행이 없기 때문에 이 오류가 표시됩니다 root=UUID=...
. 커널에는 내장된 지원이 없습니다 root=UUID=...
. 이는 initrd에 의해 처리되어야 합니다.
- 따라서 initrd 줄을 추가하면 됩니다. 일반적으로 설치 중에 initrd를 생성해야 합니다.
그렇지 않으면 (Slackware) Linux 설치에 문제가 있으므로 이를 구출해야 한다고 생각합니다. 운영 체제 설치 미디어에는 매우 편리한 복구 시스템이 포함되어 있는 경우가 많습니다. 운영 체제를 설치하고 유지할 때 이와 같은 복구 시스템을 확보하는 것이 좋습니다. (아직 구조 시스템 사용법에 자신이 없다면 인터넷 접속이 가능한지 확인하세요.)
- 아니면 UUID를 사용하지 않을 수도 있습니다. 대신 루트 파일 시스템의 장치 노드를 직접 지정하십시오
root=/dev/sda1
. 예를 들어 시스템 부팅/복구를 마친 후 UUID를 다시 넣을 수 있습니다.
귀하의 의견에서 흥미로운 순환 종속성을 언급하셨습니다. 프로세스가 정확히 동일한 커널을 부팅해야 하는 경우 initrd를 어떻게 생성합니까? 그러나 나는 이 요구 사항이 의미가 없다고 생각합니다. (설치 프로그램, 커널 업그레이드 등을 고려하십시오.) 이는 일치하는 복구 시스템에서 발생하거나 최신 복구 시스템에서 설치로 chrooting할 때 발생해야 합니다...
당신은 생각하고 있어야합니다 mkinitrd_command_generator.sh
. 특정 코어에 대해 이를 호출하는 예를 다른 곳에서 보았습니다.
/usr/share/mkinitrd/mkinitrd_command_generator.sh /boot/vmlinuz-generic-2.6.37.6
바라건대 이것은 약간 쓸모가 없기 때문에 이것이 현재 커널에만 국한되지 않는다는 것을 의미합니다.