
드라이브에 다른 파티션을 마운트하기 위해 GRUB2 링크를 사용하여 멀티 부팅 USB 플래시 드라이브를 만들려고 합니다. 작동하지 않습니다. 나원하지 않는다다중 부팅 플래시 드라이브를 만드는 방법에 대한 조언을 듣고 싶습니다. 이를 수행하는 방법에는 여러 가지가 있습니다. 그래요오직이 특정 접근 방식이 작동하지 않는 이유를 알아내는 데 관심이 있습니다.
배경 정보: 두 개의 USB 드라이브가 있습니다. USB1과 USB2라고 부르겠습니다. 나는 현재 다중 부팅 친화적인 방식으로 그 중 하나에 Debian Wheezy를 설치하려고 합니다. 이제 ISO를 USB1(/dev/sdb)에 추가하면 다음과 같습니다.
dd conv=notrunc bs=4M if=/path/to/iso of=/dev/sdb
그러면 데비안을 설치할 수 있는 멋진 부팅 가능한 드라이브가 생성됩니다. 또한 USB2에 GRUB2를 설치하면 다음을 사용하여 USB1 로드를 성공적으로 연결할 수 있습니다.
search --label --set=root "Debian 7.0.0 i386 1"
chainloader +1
boot
이제 문제를 해결하려면 USB2에 두 번째 파티션을 만들고 해당 파티션에 iso를 추가하면 됩니다.
dd conv=notrunc bs=4M if=/path/to/iso of=/dev/sdc2
체인 로딩이 작동하지 않습니다. 오류 메시지가 표시되지 않고 대시가 깜박이는 검은색 화면만 표시됩니다(응답 없음). (두 드라이브 모두에서 이 작업을 시도했기 때문에 하드웨어 결함이 원인이라고 생각하지 않습니다.)
왜 이것이 작동하지 않습니까? 서로 다른 드라이브를 체인 로드하는 것과 동일한 드라이브에 서로 다른 파티션을 체인 로드하는 것(정확히 동일한 데이터가 포함된 경우)의 차이점은 무엇입니까?
답변1
첫째, 디스크 이미지는 파티션 이미지와 다릅니다. 하나(디스크 이미지로 보이는 것)를 둘 다 사용하려고 하는데 이는 잘못된 것입니다. dd
단지 오류가 없다고 해서 모든 것이 괜찮다고 가정하지 마십시오 . 실제 IO 오류가 발생하지 않는 한 명령한 것은 무엇이든 기꺼이 수행할 것입니다.
드라이브를 링크 로드하면 GRUB는 마스터 부트 레코드를 찾습니다. 이는 디스크 내용을 시작하고 부트 코드를 포함하는 것입니다. 그러나 분할 구조는 다릅니다. 코드로 시작하지도 않습니다. 부트 레코드가 있지만 더 멀리 위치합니다. GRUB도 체인로드할 수 있지만 프로그램은 다릅니다. 디스크 이미지를 파티션에 넣으면 사용자에게 친숙한 어떤 것도 생성되지 않으며 GRUB는 확실히 거기에서 MBR을 기대하지 않습니다. 대신에 임의의 기계어 코드를 실행하는데 이는 확실히 PC에 좋지 않습니다.
이 기능을 구현하려면 데비안 파티션의 내용을 이 파티션에 복사하고 그 위에 GRUB를 설치해야 합니다. 도중에 문제가 발생하지 않는 한 완벽하게 작동해야 합니다. 당신의 것을 다시 만드는 것을 잊지 마세요 /dev/sdc2
!