Mam płytę CD utworzoną z pliku ISO, którego używam do instalowania niestandardowej wersji Ubuntu przez plop linux.
Płyta CD działa dobrze, ale zamiast tego chciałbym użyć rozruchowego napędu USB. Użyłem polecenia dd, aby spróbować utworzyć rozruchowy USB:
dd if=filename.iso of=/dev/sdb1 bs=4k
Teraz kopiuje pliki i sprawia, że USB można uruchomić, ale pojawia się błąd „Brak systemu operacyjnego”
Jakieś pomysły?
Odpowiedzi:
Ok, po kilku badaniach wymyśliłem rozwiązanie i przejrzę je krok po kroku. Problem był dwojaki.
Podłącz napęd flash USB i określ urządzenie, na którym jest zainstalowany, za pomocą polecenia:
Tym razem było to dla mnie / dev / sdc1, więc użyję tego jako mojego przykładu.
Zamontuj urządzenie
Nie wiem, czy to konieczne, ale na wszelki wypadek sformatowałem dysk w FAT32
Teraz moje ISO używało izolinux, a nie syslinux. Wiedziałem, że działa z płytami CD, więc doszedłem do wniosku, że muszę wywołać polecenie isohybrid, które pozwala BIOSowi rozpoznać ISO z dysku twardego.
Możesz dowiedzieć się więcej o tym poleceniu tutaj , ale to było przyczyną komunikatu „Brakujący system operacyjny”. Pierwszy problem został naprawiony, ale teraz powiedział „brak lub uszkodzenie pliku isolinux.bin”
Następnym krokiem jest skopiowanie ISO. Mój drugi problem polegał na tym, że kopiowałem na partycję sdc1, a nie na urządzenie sdc.
Wydaje się, że działa to dobrze, ale na forum, na którym mam ostatnią poprawkę, przed odłączeniem urządzenia zaleca się wykonanie następujących czynności:
źródło
mkdosfs
polecenie może nie być konieczne, ponieważ w ISO znajduje się już system plików (prawdopodobnie zawierający MBR, nie jestem pewien), który jest kopiowany na początek urządzenia blokowego. Człowieku,isohybrid
to fajne polecenie, nie wiedziałem o tym!dd
polecenia w kroku # 5 będzie zniszczyć nowo utworzony system plików z zawartością ISO.pro
w systemie Linux, więc dziękuję)Jest to częsty problem z pamięciami USB SanDisk lub pamięciami niesformatowanymi w FAT32.
Jeśli nie któryś z nich, z pewnością jest to problem z kolejnością partycji stick lub plikiem syslinux.cfg.
źródło
isohybrid
nie zawsze może działać. Na przykład miałem .iso z FreeDOS i izohybrid nie był w stanie znaleźć tam ważnych plików (nie wiem, czy powinny zostać tam umieszczone przez syslinux, którego też użyłem, czy cokolwiek innego). Proponuję tutaj kilka alternatyw.1) Zainstaluj tam inny program ładujący, taki jak GRUB. Wyjaśniono to tutaj :
„Załóżmy, że pierwszą partycją pamięci USB jest FAT32, a jej partycją jest / dev / sdy1” (miałem
grub2
na Fedorze Core, więc nieco zmieniłem polecenia):2) FreeDOS wiki oferuje metodę związek z GRUB i syslinux tutaj (choć nie rozumiem, w jaki sposób rozpoczęła
grub>
- nie mogę uruchomić z USB do tego etapu).3) Oto post, który może być przydatny - mówi: „Tak długo, jak pliki command.com, kernel.sys, syslinux.cfg, ldlinux.sys i fat32lba.bss znajdują się w katalogu głównym dysku, a MBR i boot sektor nie został przepisany, dysk powinien pozostać bootowalny ”.
4) Tutaj wyjaśniono, jak wygenerować rozruchowy plik .iso za pomocą programu ładującego syslinux. Nie używają nawet izohybrydu. Niestety to mi nie pomogło (może z powodu syslinux).
5 *) Użyj programu Windows za pośrednictwem
wine
. Próbowałem Rufusa, jednak to nie działało, nie mogłem znaleźć urządzenia.Ostrzegam, że niestety nie udało mi się rozwiązać tego problemu, nie można uruchomić mojego urządzenia, ale mam nadzieję, że może to być przydatne dla innych osób (także tych, którzy nie chcą instalować Linuksa na USB). Obraz USB wygenerowany przez chtaube działał jednak dla mnie, więc myślę, że te metody są poprawne.
UPD: Trzecia metoda naprawdę działa (z korektą niestandardowego pliku instalacyjnego).
UPD2: (stałe linki). Problem
isohybrid
był prawdopodobnie dlatego, że wersje pliku isolinux.bin na iso i mój system były różne. Ponowne skompilowanie pliku iso,genisoimage
zgodnie z sugestią tutaj :Były też pewne problemy, zostały one rozwiązane tutaj metodą przed genisoimage:
== koniec UPD2 ==
źródło
Możesz użyć
bootiso
narzędzia , które dokładnie to robi, bezpiecznie:bootiso sprawdzi, czy wybrane urządzenie
/dev/sdb
jest podłączone przez USB, a jeśli nie, zawiedzie, co jest dużym plusem bezpieczeństwa. Automatycznie wykrywa urządzenie USB, jeśli do systemu jest podłączony dokładnie jeden dysk USB, zobacz, jak działa:Jeśli chcesz zainstalować bootloader syslinux, aby obejść problemy wymienione przez @xsdf, użyj
-b
opcji:Aby zainstalować:
źródło