Xorriso, aby przekonwertować surowy obraz do ISO nie działa (zbyt duży rozmiar pliku)

0

Jak mówi tytuł, próbuję przekonwertować plik obrazu surowego na obraz ISO.

Użyłem ich jako odniesienia podczas tego.

https://www.turnkeylinux.org/blog/convert-vm-iso

https://manpages.debian.org/cgi-bin/man.cgi?sektion=1&query=xorrisofs&apropos=0&manpath=sid&locale=en

krótkie (tldr :) (na dole jest rozszerzone tło, jeśli to pomaga)

Utworzyłem surowy obraz z mojej maszyny wirtualnej qcow2 i zamontowałem go jako urządzenie loopback w

virtMachineIMG.mount

Kiedy uruchomię następujące

xorrisofs -v -J -r -V -o ./MyCentos_img.iso ./virtMachineIMG.mount/

Na końcu pojawia się błąd, że obraz jest zbyt duży i nie można go zapisać.

Czy ktoś ma jakieś pomysły, jak mogę to obejść?

Mój nieprzetworzony plik obrazu ma rozmiar 8 gig. Nie jestem pewien, ile dokładnie z tego korzysta, ani jak bezpiecznie „zmniejszyć” dysk do rozmiaru danych w nim zawartych.

Czy brakuje mi kroku w przygotowaniach? powinienem tworzyć kolejny dysk za pomocą qemu, na którym następnie nagrywam swój surowy obraz?

Powinienem zauważyć, że mój surowy obraz (oryginalny plik qcow2) używał LVM, czy to robi różnicę?

Wszelka pomoc jest bardzo mile widziana i doceniana.

David.

ps. jeśli potrzebujesz więcej szczegółów pełnego wyjścia, po prostu zapytaj, zawsze mogę ponownie uruchomić xorrisofs - uruchomienie zajmuje około 2 godzin, czy to normalne?

___________ Tło : ____________

Skonfigurowałem system testowy na komputerze lokalnym na maszynie wirtualnej Host: Debian Guest: Centos używa: Qemu / KVM w Virtual Machine Manager.

ze względu na naturę systemu testowego musiałem „zainstalować ze źródła” i skonfigurować wszystkie wymagane części (Postgres, Tomcat ... itd. itp. itd.).

Wszystko poszło naprawdę dobrze, a moi koledzy są zadowoleni z tego, co zrobiłem. Ponieważ jednak nie muszą przychodzić do mojego biura, zaproponowałem sprawdzenie, czy mogę przekształcić to w ISO, które mogliby z łatwością uruchomić z dowolnego miejsca.

Uzasadnienie:

  • Mogliby uruchomić system z dowolnego komputera.
  • Można go łatwiej przenieść na inny serwer (w razie potrzeby).
  • Nie chciałem niepokoić moich kolegów koniecznością instalowania czegokolwiek, wystarczy podłączyć dysk USB z ISO do komputera i uruchomić bezpośrednio z niego.
  • O wiele łatwiejsze jest również prezentowanie platformy.
  • mogę go użyć do stworzenia maszyny wirtualnej na jednym z naszych serwerów do rozszerzonego testowania (zakładam, że ISO będzie łatwiejsze do tego, niż surowe lub qcow2)

Oczywiście, jeśli tam gdzie rpms lub debaty głównej części platformy (nie trzeba było instalować ze źródła), to po prostu stworzyłbym CentOS ISO z linkami do wymaganych rpms, aby rozpocząć instalację.

Chcę też, aby moi koledzy mieli dostęp do niektórych „przykładowych danych” na platformie, dzięki czemu mogę być pewien, że wszyscy pracujemy z tej samej bazy.

DaveM
źródło

Odpowiedzi:

0

Dziękuję za latanie Xorriso.

Nie znając dokładnego komunikatu o błędzie, muszę się trochę domyślić. Taka odmowa może się zdarzyć, jeśli wynikowy obraz ISO nie zmieści się na dysku lokalnym. Czas działania 2 godziny wskazuje na pętlę katalogu wewnątrz ./virtMachineIMG.mount. W takim przypadku programy takie jak „du” i „find” powinny również wyświetlać dziwnie powtarzane wyniki.

W każdym razie w twoim Xorriso brakuje sprzętu rozruchowego odpowiedniego dla systemów plików ISO. Ponieważ wydaje się, że chcesz uruchomić prawdziwy komputer z USB, będzie on potrzebował MBR i ewentualnie tabeli partycji GUID. Ponadto system plików ISO musi zawierać wszystkie pliki potrzebne do uruchomienia systemu operacyjnego na prawdziwej maszynie, a moduł ładujący uruchamiany przez MBR lub GPT musi wiedzieć, jak uruchomić system operacyjny. (Ogólne ISO jest klasycznie znane jako „Live CD”).

Jeśli twój system wirtualny uruchamia się już za pomocą bootloadera GRUB2, to nie jesteś zbyt daleko od tego. Program „grub-mkrescue” dba o oprogramowanie ładujące i komponuje zaawansowane opcje xorriso. Zobacz https://www.gnu.org/software/grub/manual/html_node/Making-a-GRUB-bootable-CD_002dROM.html

Pozostałym zadaniem eksperta będzie uzyskanie pliku „grub.cfg” dla „grub-mkrescue” z pliku „grub.cfg” na obrazie dysku maszyny wirtualnej.

Alternatywą dla GRUB2 jest ISOLINUX z izohybrydem. Zobacz http://www.syslinux.org/wiki/index.php?title=Isohybrid Wiele dystrybucji Linuksa używa ISOLINUX dla oprogramowania BIOS i GRUB2 dla oprogramowania EFI na tym samym obrazie ISO.


xorrisofs -v -J -r -V -o ./MyCentos_img.iso ./virtMachineIMG.mount/

Ten wiersz polecenia jest niepoprawny, ponieważ opcja -V oczekuje ciągu jako identyfikatora woluminu (inaczej etykiety dysku). Wykorzysta opcję -o, pozostawiając „./MyCentos_img.iso” jako ścieżkę wejściową (podobnie jak dla „./virtMachineIMG.mount”).

Jeśli „./MyCentos_img.iso” jeszcze nie istnieje, uruchomienie powinno zakończyć się niepowodzeniem

xorriso : FAILURE : Cannot determine attributes of source file './MyCentos_img.iso' : No such file or directory

W przeciwnym razie dostajesz dużo danych binarnych do swojego terminala (ponieważ standardowe wyjście jest standardowe, jeśli nie zostanie rozpoznana opcja -o).

Thomas Schmitt
źródło
Ach, więc muszę sprawdzić linię poleceń. Miałem nadzieję, że poprawnie dodałem wymagane dane dla grub itp. Ale dzięki twoim dodatkowym informacjom powinienem być w stanie ustalić, czy zadziałało. Pętla katalogu na moim obrazie wydaje się możliwa (używam twardych dowiązań do niektórych rzeczy, które są kontrolowane przez źródło), a może jest to artefakt użycia LVM na maszynie wirtualnej. Na razie dałeś mi wiele rzeczy do zbadania. Wrócę do ciebie wkrótce. Dzięki
DaveM