덮어쓴 파티션(예: 변경 사항 저장)으로 부팅 가능한 Debian Live OS를 만들고 싶습니다. 하지만 하나가 아닌 여러 개의 파티션을 만들고 싶습니다. syslinux를 한 파티션에 설치하고, Debian OS 라이브 이미지 파일을 다른 파티션에, 마지막으로 오버레이 파티션을 다른 파티션에 설치하고 싶습니다. 이를 달성하기 위해 데비안 공식 페이지에서 도움을 요청했습니다.데비안 운영 체제 부팅을 위한 USB 준비 지침및 syslinux 문서. 저는 syslinux 명령을 사용하여 부팅 메뉴를 가져오고 로드할 수 있습니다.vmlinuz-5.10.0-8-amd64sdb1에 있는 syslinux의 동일한 폴더(부팅 파티션, 즉/mnt/sdb1/syslinux/vmlinuz-5.10.0-8-amd64). 하지만 sdb2에 있는 두 번째 파티션을 로드할 수 없습니다(예:/mnt/sdb2/live/initrd.img-5.10.0-8-amd64) sdb1의 syslinux 폴더에 있는 menu.cfg에서 이 명령을 사용하십시오. 내가 할 건 여기밖에 없어메뉴 구성 파일아래의 파일/dev/sdb1/syslinux/폴더:
INCLUDE stdmenu.cfg
MENU title Main Menu
DEFAULT Debian GNU/Linux 64 bit
LABEL Debian GNU/Linux 64 bit
SAY "Booting Debian GNU/Linux Live (kernel 5.10.0-8-amd64)..."
LINUX vmlinuz-5.10.0-8-amd64
APPEND root=/dev/sdb2 fromhd=/dev/sdb initrd=/dev/sdb2/live/initrd.img-5.10.0-8-amd64 boot=live swap=true persistence persistence-storage=filesystem persistence-media=removable-usb union=overlay components locales=tr_TR.UTF-8 splash
결과 :
주문하다루트=/dev/sdb2그리고initrd=/dev/sdb2/live/initrd.img-5.10.0-8-amd64작동하지 않습니다. **해당 파일이나 디렉터리가 없습니다** 오류가 발생합니다. 도와주세요. 왜 작동하지 않나요? 어떻게 작동하게 할 수 있나요?
답변1
를 사용하면 APPEND
커널 명령줄에 매개변수를 추가하는 것뿐입니다. 그러나 최신 커널에서는 파일을 로드하는 작업이 initrd.img
커널이 아닌 부트로더의 작업이 됩니다 . GRUB과 SYSLINUX 모두 initrd
이 목적으로 이 명령을 사용합니다.
역사적인 이유로 Syslinux는 initrd=
라인의 옵션을 이해 APPEND
하고 이를 특별히 처리합니다. 해당 줄의 다른 모든 옵션은 APPEND
처리를 위해 커널(및 initrd 스크립트)에 맡겨집니다.
그러나 Syslinux는 Linux가 부팅 시 다양한 장치에 어떻게 이름을 지정하는지 전혀 모르고 있으며 Syslinux가 현재 부팅된 장치 이외의 다른 장치를 참조할 방법이 없는 것 같습니다(적어도 문서화된 방법은 아님).
이 Loading vmlinuz-5.10.0-8-amd64... ok
메시지는 다음 줄과 마찬가지로 Syslinux에 의해 인쇄됩니다. initrd 파일을 커널 파일과 다른 파티션에 배치하면 Syslinux가 initrd 파일에 전혀 액세스할 수 없다는 의미입니다.Syslinux에서는 구성, 커널 및 initrd 파일이 동일한 파티션에 있어야 합니다.
최신 GRUB 버전은 원하는 작업을 수행할 수 있을 만큼 유연하지만 이 GRUB 사용자 정의 설치에는 약간의 작업이 필요합니다.