plop linux를 통해 Ubuntu의 사용자 정의 버전을 설치하는 데 사용하는 ISO 파일로 작성된 CD가 있습니다.
CD는 제대로 작동하지만 부팅 가능한 USB 드라이브를 대신 사용하고 싶습니다. dd 명령을 사용하여 부팅 가능한 USB를 만들려고했습니다.
dd if=filename.iso of=/dev/sdb1 bs=4k
이제 파일을 복사하고 USB를 부팅 가능하게 만들지 만 "운영 체제 누락"오류가 발생합니다.
어떤 아이디어?
plop linux를 통해 Ubuntu의 사용자 정의 버전을 설치하는 데 사용하는 ISO 파일로 작성된 CD가 있습니다.
CD는 제대로 작동하지만 부팅 가능한 USB 드라이브를 대신 사용하고 싶습니다. dd 명령을 사용하여 부팅 가능한 USB를 만들려고했습니다.
dd if=filename.iso of=/dev/sdb1 bs=4k
이제 파일을 복사하고 USB를 부팅 가능하게 만들지 만 "운영 체제 누락"오류가 발생합니다.
어떤 아이디어?
답변:
연구를 마친 후에 해결책을 찾았으며 단계별로 살펴 보겠습니다. 문제는 두 가지였다.
USB 플래시 드라이브를 연결하고 다음 명령으로 마운트 된 장치를 확인하십시오.
sudo fdisk -l
이번에는 / dev / sdc1 이었으므로 예제로 사용하겠습니다.
장치 마운트 해제
umount /dev/sdc1
필요한 경우 확실하지 않지만 FAT32로 드라이브를 포맷했습니다.
sudo mkdosfs -n 'USB-Drive-Name' -I /dev/sdc -F 32
이제 내 ISO는 syslinux가 아닌 isolinux를 사용했습니다. CD와 함께 작동한다는 것을 알았으므로 isohybrid 명령을 호출해야 하드 드라이브의 BIOS에서 ISO를 인식 할 수있었습니다.
isohybrid filename.iso
이 명령에 대한 자세한 내용은 여기 에서 찾을 수 있지만 이것이 "운영 체제 누락"메시지의 원인입니다. 첫 번째 문제는 해결되었지만 이제 "isolinux.bin이 없거나 손상되었습니다"라고했습니다.
다음 단계는 iso를 복사하는 것입니다. 두 번째 문제는 여기서 장치가 아닌 파티션 sdc1에 복사하는 sdc1입니다.
sudo dd if=filename.iso of=/dev/sdc bs=4k
이것은 잘 작동하는 것처럼 보이지만 마지막 수정 사항을 얻은 포럼에서는 장치를 분리하기 전에 다음을 수행하는 것이 좋습니다.
sync
sudo eject /dev/sdc
mkdosfsiso는 이미 블록 장치의 시작 부분으로 복사되는 파일 시스템이 이미있을 수 있기 때문에 (아마도 MBR 포함하지 않음) 명령이 필요하지 않을 것이라고 생각합니다 . 남자, isohybrid멋진 명령입니다, 그것에 대해 몰랐어요!
dd5 단계 의 명령은 ISO의 내용으로 새로 생성 된 파일 시스템을 제거합니다.
pro아직 리눅스가 아니므로 감사합니다)
isohybrid항상 작동하지 않을 수 있습니다. 예를 들어 FreeDOS와 함께 .iso를 사용했으며 isohybrid는 중요한 파일을 찾을 수 없었습니다 (syslinux에 의해 파일을 넣었는지 여부 또는 다른 것을 사용했는지 여부는 알 수 없음). 여기에 몇 가지 대안을 제안합니다.
1) GRUB과 같은 다른 부트 로더를 설치하십시오. 여기에 설명되어 있습니다 :
"USB 스틱의 첫 번째 파티션은 FAT32이고 그 파티션은 / dev / sdy1이라고 가정합니다."( grub2Fedora Core에 있으므로 명령을 약간 변경했습니다.)
# mkdir -p /mnt/usb ; mount /dev/sdy1 /mnt/usb
# grub2-install --target=i386-pc --recheck --debug --boot-directory=/mnt/usb/boot /dev/sdy
# grub2-mkconfig -o /mnt/usb/boot/grub2/grub.cfg
# optional, backup config files of grub.cfg
# mkdir -p /mnt/usb/etc/default
# cp /etc/default/grub /mnt/usb/etc/default
# cp -a /etc/grub.d /mnt/usb/etc
# sync; umount /mnt/usb
2) FreeDOS에 위키는 GRUB와 SYSLINUX와 복합 방법을 제공 여기를 나는 그들이 시작하는 방법을 이해하지 않습니다하지만 ( grub>내가 그 단계에 USB까지에서 부팅 할 수 있음) -.
3) 다음 은 유용 할 수있는 게시물입니다. 'command.com, kernel.sys, syslinux.cfg, ldlinux.sys 및 fat32lba.bss 파일이 드라이브의 루트와 MBR 및 부트에있는 한 섹터를 다시 쓰지 않으면 드라이브를 부팅 가능한 상태로 유지해야합니다. '
4) 여기서는 syslinux 부트 로더로 부팅 가능한 .iso 파일을 생성하는 방법에 대해 설명합니다. 그들은 isohybrid도 사용하지 않습니다. 불행히도 그것은 도움이되지 않았습니다 (아마도 syslinux 때문에).
5 *)를 통해 Windows 프로그램을 사용하십시오 wine. 나는 rufus를 시도했지만 작동하지 않아 장치를 찾을 수 없습니다.
불행히도이 문제를 해결할 수 없으며 내 장치를 부팅 할 수 없지만 다른 사람들 (USB에는 Linux를 설치하지 않으려는 사람들)에게 유용 할 수 있기를 바랍니다. chtaube에 의해 생성 된 USB 이미지는 저에게 효과적이므로 이러한 방법이 올바른 것 같습니다.
UPD : 세 번째 방법은 실제로 작동합니다 ( 사용자 정의 설치 파일을 수정 함 ).
UPD2 : (고정 링크). 문제 isohybrid는 아마도 iso와 내 시스템의 isolinux.bin 버전이 다르기 때문일 것입니다. 여기에genisoimage 제안 된대로 iso를 다시 컴파일했습니다 .
genisoimage -l -r -J -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o fd11new.iso fd11new
또한, 그들은 방법에 의해 해결 된 몇 가지 문제가 있었다 여기 genisoimage하기 전에 :
cp /boot/extlinux/*.c32 fd11new/isolinux/
extlinux --install /boot/isolinux
== UPD2 종료 ==
bootiso유틸리티를 사용하면 정확히 그렇게 할 수 있습니다 .
bootiso -d /dev/sdb filename.iso
bootiso는 선택된 장치 /dev/sdb가 USB를 통해 연결되어 있는지 확인하고 연결되지 않으면 실패합니다. 이는 큰 보안 이점입니다 . 시스템에 정확히 하나의 USB 드라이브가 연결되어 있으면 USB 장치를 자동 감지합니다. 작동 상태를 확인하십시오.
@xsdf에서 언급 한 문제를 피하기 위해 syslinux bootloader를 설치하려면 -b옵션을 사용하십시오 .
bootiso -b -d /dev/sdb filename.iso
설치하려면 :
curl -L https://rawgit.com/jsamr/bootiso/latest/bootiso -O
chmod +x bootiso