Jak stworzyć niestandardowy obraz ISO w CentOS

20

Próbuję utworzyć niestandardowy obraz ISO, który zainstalowałby minimalne wymagane RPMS wraz z niestandardowymi zapisanymi RPM mojej aplikacji. a także chce wykonać kilka kroków po instalacji, takich jak konfiguracja mojej aplikacji i konfiguracji VPN itp.

Widziałem niektóre linki w Google, ale wskazują one tworzenie repozytorium i ISO z zamontowanego dysku lub obrazu ISO.

Dzięki Ramesh

Ramesh Kumar
źródło
możesz także użyć redhat kickstart do tego zadania, to jest łatwiejszy i bardziej elastyczny wybór Więcej informacji tutaj access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
fyarci

Odpowiedzi:

46
  1. Utwórz katalog, aby zamontować źródło.

    mkdir /tmp/bootiso
    
  2. Pętla zamontuje źródłowy ISO, który modyfikujesz. (Pobierz z Red Hat / CentOS.)

    mount -o loop /path/to/some.iso /tmp/bootiso
    
  3. Utwórz katalog roboczy dla niestandardowych multimediów.

    mkdir /tmp/bootisoks
    
  4. Skopiuj nośnik źródłowy do katalogu roboczego.

    cp -r /tmp/bootiso/* /tmp/bootisoks/
    
  5. Odmontuj źródłowy ISO i usuń katalog.

    umount /tmp/bootiso && rmdir /tmp/bootiso
    
  6. Zmień uprawnienia do katalogu roboczego.

    chmod -R u+w /tmp/bootisoks
    
  7. Skopiuj skrypt Kickstart, który został zmodyfikowany dla pakietów i %postdo katalogu roboczego.

    cp /path/to/someks.cfg /tmp/bootisoks/isolinux/ks.cfg
    
  8. Skopiuj wszelkie dodatkowe RPM do struktury katalogów i zaktualizuj metadane.

    cp /path/to/*.rpm /tmp/bootisoks/Packages/.
    cd /tmp/bootisoks/Packages && createrepo -dpo .. .
    
  9. Dodaj kickstart do opcji rozruchu.

    sed -i 's/append\ initrd\=initrd.img/append initrd=initrd.img\ ks\=cdrom:\/ks.cfg/' /tmp/bootisoks/isolinux/isolinux.cfg
    
  10. Utwórz nowy plik ISO.

    cd /tmp/bootisoks && \ 
    mkisofs -o /tmp/boot.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "CentOS 7 x86_64" -R -J -v -T isolinux/. .
    
  11. (Opcjonalnie) Użyj, isohybridjeśli chcesz, aby ddplik ISO był bootowalnym kluczem USB.

    isohybrid /tmp/boot.iso
    
  12. Dodaj sumę kontrolną MD5 (aby umożliwić testowanie mediów).

    implantisomd5 /tmp/boot.iso
    

Jeśli potrzebujesz dodatkowej pomocy przy tworzeniu skryptu Kickstart , sugeruję zacząć od oficjalnej dokumentacji Red Hat.

Aaron Copley
źródło
1
Czy to możliwe, że przegapiłeś lub spartaczyłeś krok 4?
Aaron Copley,
3
@AaronCopley tak, prawdopodobnie masz rację. Znalazłem również to: github.com/joyent/mi-centos-7, które mi pomogły.
sivann
1
W kroku 9 uważam, że musisz podać ostatni parametr. (kropka), aby wskazać bieżący katalog. Dziwne zachowanie domyślne, ale bez tego mkisofs tworzy plik ISO, który zawiera tylko pliki z górnego katalogu, bez podkatalogów i nie tylko.
hshib
2
Miałem również problem z krokiem 4. Przy użyciu polecenia „cp” nie kopiuje on ukrytych plików .discinfo i .treeinfo. Bez nich utworzone iso kończy się niepowodzeniem podczas instalacji, skarżąc się, że „nie znaleziono płyty CD / ROM”.
hshib
1
Możesz skopiować wszystko za pomocą pojedynczego polecenia za pomocą - "cp -r / tmp / bootiso /. / Tmp / bootisoks /" (jest to trochę trudne - uwaga pojedyncza. Po / tmp / bootiso /)
hshib