Kickstart mit CentOS-6.5 Minimal

Duffman

Azubi
Hallo zusammen.
Ich habe ein kleines Problem. Mein folgendes vorhaben ist es, mit einer normalen CentOS 6.5 minimal ISO zusätzlich einer ks.cfg File ein USB Stick zu erstellen. Ich möchte in Zukunft einfach nur den Hostname in der ks.cfg File ändern und die ISO neu erstellen.

Wie bin ich bisher vorgegangen?

  • Ein Ordner erstellt unter /tmp
  • Die CentOS ISO gemountet mit:
    mount CentOS.iso /tmp/iso -o loop
  • Danach die ks.cfg File in den Ordner isolinux/ abgelegt
  • mit folgendem Befehl eine ISO erstellt


    mkisofs -o /tmp/CentOS.iso -b isolinux.bin -c boot.cat -no-emul-boot \ -boot-load-size 4 -boot-info-table -R -J -v -T .
  • Daraufhin hatte ich eine ungefähr 420MB große ISO Datei
  • mit dd bs=4M if=/tmp/CentOS.iso of=/dev/sdb && sync

    auf den USB Stick übertragen
Möchte ich nun vom Server aus den USB Stick booten kommt: No bootable Device found ...


Kann mir jemand helfen?

EDIT://Wurde darauf aufmerksam gemacht, dass es bei "Crossposting" eine Verwarnung gibt. Hier noch ein Link in einem anderen Forum wo ich das Thema auf den Zahn fühle: http://www.sponsor-board.de/kickstart-mit-centos-6-5-minimal-t-48359.html#pid303959
 
Last edited by a moderator:
Aus unserer hier vorhandenen QnD-Anleitung:
- in Loop-Devicen nix ändern, sondern mounten Inhalt und in temp. Verz. kopieren
- unser ISO baut aktuell mit:
Code:
mkisofs -R -J -T -no-emul-boot -boot-load-size 4 -boot-info-table -V "centos" -b isolinux/isolinux.bin -c isolinux/boot.cat -x "lost+found" -o centos.iso $tmpverzeichnis

Idealerweise kommt der Hostname bei der Installation über einen DHCP-Server, eine im ISO angegebene externe ks.cfg oder ggf. über ein Post-Install-Script - ist doch grober Unfug, für jeden neuen Server das ISO anpassen zu müssen...
 
Last edited by a moderator:
Hey,
danke für deine Antwort.
Das mit dem DHCP stimmt ....

Wie kann ich den Befehl bei mir verwenden?
Das die ISO erstellt wird und ich diese bootbar per DD auf mein USB Stick packen kann?

EDIT:
Hatte mit folgendem Befehl:
Code:
mkisofs -o /tmp/CentOS.iso -b isolinux/isolinux.bin -c isolinux/boot.cat  -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T .
Ausgabe:
Code:
I: -input-charset not specified, using utf-8 (detected in locale settings)
genisoimage 1.1.9 (Linux)
Scanning .
Scanning ./images
Excluded: ./images/TRANS.TBL
Scanning ./images/pxeboot
Excluded: ./images/pxeboot/TRANS.TBL
Excluded: ./TRANS.TBL
Scanning ./isolinux
Excluded: ./isolinux/TRANS.TBL
Excluded by match: ./isolinux/boot.cat
Scanning ./repodata
Excluded: ./repodata/TRANS.TBL
Scanning ./Packages
Excluded: ./Packages/TRANS.TBL
Scanning ./EFI
Excluded: ./EFI/TRANS.TBL
Scanning ./EFI/BOOT
Excluded: ./EFI/BOOT/TRANS.TBL
Using RPM_G000.;1 for  /RPM-GPG-KEY-CentOS-Testing-6 (RPM-GPG-KEY-CentOS-6)
Using RPM_G001.;1 for  /RPM-GPG-KEY-CentOS-6 (RPM-GPG-KEY-CentOS-Security-6)
Using RPM_G002.;1 for  /RPM-GPG-KEY-CentOS-Security-6 (RPM-GPG-KEY-CentOS-Debug-6)
Using DEVIC000.RPM;1  for  ./Packages/device-mapper-libs-1.02.79-8.el6.x86_64.rpm  (device-mapper-multipath-libs-0.4.9-72.el6.x86_64.rpm)
Using LIBSE000.RPM;1 for  ./Packages/libselinux-2.0.94-5.3.el6_4.1.x86_64.rpm (libselinux-utils-2.0.94-5.3.el6_4.1.x86_64.rpm)
Using IPTAB000.RPM;1 for  ./Packages/iptables-ipv6-1.4.7-11.el6.x86_64.rpm (iptables-1.4.7-11.el6.x86_64.rpm)
Using SELIN000.RPM;1  for  ./Packages/selinux-policy-targeted-3.7.19-231.el6.noarch.rpm  (selinux-policy-3.7.19-231.el6.noarch.rpm)
Using E2FSP000.RPM;1 for  ./Packages/e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm (e2fsprogs-1.41.12-18.el6.x86_64.rpm)
Using DEVIC001.RPM;1  for  ./Packages/device-mapper-multipath-libs-0.4.9-72.el6.x86_64.rpm  (device-mapper-persistent-data-0.2.8-2.el6.x86_64.rpm)
Using KEYUT000.RPM;1 for  ./Packages/keyutils-1.4-4.el6.x86_64.rpm (keyutils-libs-1.4-4.el6.x86_64.rpm)
Using DEVIC002.RPM;1  for  ./Packages/device-mapper-persistent-data-0.2.8-2.el6.x86_64.rpm  (device-mapper-multipath-0.4.9-72.el6.x86_64.rpm)
Using CYRUS000.RPM;1 for  ./Packages/cyrus-sasl-lib-2.1.23-13.el6_3.1.x86_64.rpm (cyrus-sasl-2.1.23-13.el6_3.1.x86_64.rpm)
Using PLYMO000.RPM;1 for  ./Packages/plymouth-0.8.3-27.el6.centos.x86_64.rpm (plymouth-scripts-0.8.3-27.el6.centos.x86_64.rpm)
Using NSS_S000.RPM;1 for  ./Packages/nss-softokn-freebl-3.14.3-9.el6.x86_64.rpm (nss-softokn-3.14.3-9.el6.x86_64.rpm)
Using PLYMO001.RPM;1  for  ./Packages/plymouth-scripts-0.8.3-27.el6.centos.x86_64.rpm  (plymouth-core-libs-0.8.3-27.el6.centos.x86_64.rpm)
Using NFS_U000.RPM;1 for  ./Packages/nfs-utils-1.2.3-39.el6.x86_64.rpm (nfs-utils-lib-1.1.5-6.el6.x86_64.rpm)
Using DEVIC003.RPM;1  for  ./Packages/device-mapper-multipath-0.4.9-72.el6.x86_64.rpm  (device-mapper-event-1.02.79-8.el6.x86_64.rpm)
Using DEVIC004.RPM;1  for  ./Packages/device-mapper-event-1.02.79-8.el6.x86_64.rpm  (device-mapper-event-libs-1.02.79-8.el6.x86_64.rpm)
Using OPENS000.RPM;1 for  ./Packages/openssh-clients-5.3p1-94.el6.x86_64.rpm (openssh-server-5.3p1-94.el6.x86_64.rpm)
Using FIPSC000.RPM;1 for  ./Packages/fipscheck-lib-1.2.0-7.el6.x86_64.rpm (fipscheck-1.2.0-7.el6.x86_64.rpm)
Using COREU000.RPM;1 for  ./Packages/coreutils-libs-8.4-31.el6.x86_64.rpm (coreutils-8.4-31.el6.x86_64.rpm)
Using NCURS000.RPM;1 for  ./Packages/ncurses-5.7-3.20090208.el6.x86_64.rpm (ncurses-base-5.7-3.20090208.el6.x86_64.rpm)
Using P11_K000.RPM;1 for  ./Packages/p11-kit-0.18.5-2.el6.x86_64.rpm (p11-kit-trust-0.18.5-2.el6.x86_64.rpm)
Using NCURS001.RPM;1 for  ./Packages/ncurses-base-5.7-3.20090208.el6.x86_64.rpm (ncurses-libs-5.7-3.20090208.el6.x86_64.rpm)
Using CRACK000.RPM;1 for  ./Packages/cracklib-2.8.16-4.el6.x86_64.rpm (cracklib-dicts-2.8.16-4.el6.x86_64.rpm)
Using DEVIC005.RPM;1 for  ./Packages/device-mapper-event-libs-1.02.79-8.el6.x86_64.rpm (device-mapper-1.02.79-8.el6.x86_64.rpm)
Using CRYPT000.RPM;1 for  ./Packages/cryptsetup-luks-libs-1.2.0-7.el6.x86_64.rpm (cryptsetup-luks-1.2.0-7.el6.x86_64.rpm)
Using OPENS001.RPM;1 for  ./Packages/openssh-server-5.3p1-94.el6.x86_64.rpm (openssh-5.3p1-94.el6.x86_64.rpm)
Writing:   Initial Padblock                        Start Block 0
Done with: Initial Padblock                        Block(s)    16
Writing:   Primary Volume Descriptor               Start Block 16
Done with: Primary Volume Descriptor               Block(s)    1
Writing:   Eltorito Volume Descriptor              Start Block 17
Size of boot image is 4 sectors -> No emulation
Done with: Eltorito Volume Descriptor              Block(s)    1
Writing:   Joliet Volume Descriptor                Start Block 18
Done with: Joliet Volume Descriptor                Block(s)    1
Writing:   End Volume Descriptor                   Start Block 19
Done with: End Volume Descriptor                   Block(s)    1
Writing:   Version block                           Start Block 20
Done with: Version block                           Block(s)    1
Writing:   Path table                              Start Block 21
Done with: Path table                              Block(s)    4
Writing:   Joliet path table                       Start Block 25
Done with: Joliet path table                       Block(s)    4
Writing:   Directory tree                          Start Block 29
Done with: Directory tree                          Block(s)    29
Writing:   Joliet directory tree                   Start Block 58
Done with: Joliet directory tree                   Block(s)    21
Writing:   Directory tree cleanup                  Start Block 79
Done with: Directory tree cleanup                  Block(s)    0
Writing:   Extension record                        Start Block 79
Done with: Extension record                        Block(s)    1
Writing:   The File(s)                             Start Block 80
  2.44% done, estimate finish Tue May 27 11:39:58 2014
  4.87% done, estimate finish Tue May 27 11:39:58 2014
  7.31% done, estimate finish Tue May 27 11:39:58 2014
  9.74% done, estimate finish Tue May 27 11:39:58 2014
 12.17% done, estimate finish Tue May 27 11:39:58 2014
 14.61% done, estimate finish Tue May 27 11:39:58 2014
 17.04% done, estimate finish Tue May 27 11:39:58 2014
 19.47% done, estimate finish Tue May 27 11:39:58 2014
 21.90% done, estimate finish Tue May 27 11:39:58 2014
 24.34% done, estimate finish Tue May 27 11:39:58 2014
 26.77% done, estimate finish Tue May 27 11:39:58 2014
 29.21% done, estimate finish Tue May 27 11:39:58 2014
 31.64% done, estimate finish Tue May 27 11:39:58 2014
 34.08% done, estimate finish Tue May 27 11:39:58 2014
 36.50% done, estimate finish Tue May 27 11:39:58 2014
 38.94% done, estimate finish Tue May 27 11:39:58 2014
 41.37% done, estimate finish Tue May 27 11:39:58 2014
 43.81% done, estimate finish Tue May 27 11:39:58 2014
 46.24% done, estimate finish Tue May 27 11:39:58 2014
 48.67% done, estimate finish Tue May 27 11:39:58 2014
 51.10% done, estimate finish Tue May 27 11:39:58 2014
 53.54% done, estimate finish Tue May 27 11:39:58 2014
 55.97% done, estimate finish Tue May 27 11:39:58 2014
 58.41% done, estimate finish Tue May 27 11:39:58 2014
 60.84% done, estimate finish Tue May 27 11:39:58 2014
 63.28% done, estimate finish Tue May 27 11:39:58 2014
 65.71% done, estimate finish Tue May 27 11:39:58 2014
 68.14% done, estimate finish Tue May 27 11:39:58 2014
 70.57% done, estimate finish Tue May 27 11:39:58 2014
 73.01% done, estimate finish Tue May 27 11:39:58 2014
 75.44% done, estimate finish Tue May 27 11:39:58 2014
 77.87% done, estimate finish Tue May 27 11:39:58 2014
 80.31% done, estimate finish Tue May 27 11:39:58 2014
 82.74% done, estimate finish Tue May 27 11:39:58 2014
 85.18% done, estimate finish Tue May 27 11:39:59 2014
 87.61% done, estimate finish Tue May 27 11:39:59 2014
 90.04% done, estimate finish Tue May 27 11:39:59 2014
 92.48% done, estimate finish Tue May 27 11:39:59 2014
 94.91% done, estimate finish Tue May 27 11:39:59 2014
 97.34% done, estimate finish Tue May 27 11:39:59 2014
 99.77% done, estimate finish Tue May 27 11:39:59 2014
Total translation table size: 73704
Total rockridge attributes bytes: 32615
Total directory bytes: 57332
Path table size(bytes): 112
Done with: The File(s)                             Block(s)    205239
Writing:   Ending Padblock                         Start Block 205319
Done with: Ending Padblock                         Block(s)    150
Max brk space used 65000
205469 extents written (401 MB)


Folglich ist das in meiner ISO:



Kann ich diese ISO per dd Befehl auf mein USB Stick brennen - das es auch bootbar ist?
 
Last edited by a moderator:
Wir haben auch gerade einen Ubuntu Stick erstellt. Gibt es einen Grund, wieso Du auf einem Live System (ISO) aufbauen willst? Es geht nämlich auch anders:

Ich habe einfach in einer Virtualisierungslösung (bei mir Parallels auf Mac) eine VM erstellt, ohne Festplatte, nur den USB Stick durchgereicht und InstallationsISO als Bootmedium. Dann habe ich ganz normal Linux auf dem USB Stick installiert (schnelle USB 3.0 Sticks sind unbedingt zu empfehlen!). Das Ding bootet nun an jedem unserer gleichartigen Rechner (IT Labor).

Wir haben die eine Installation auf 13 weitere geklont (funktioniert bei DHCP super!) und passen nun lediglich (manuell) die Hostnames der einzelnen Sticks an. Nach extern wäre das noch nicht mal nötig, aber wenn man sich von außen per SSH verbindet, ist es praktisch, auf der Konsole sehen zu können, auf welchem Rechner man sich befindet.

Wäre das auch eine Lösung für Dich?

Unser Grund für diese Lösung: wir bauen einen "on demand" Linux Cluster für eine Anwendung (für nachts und das WE) auf, der spurlos wieder verschwindet, wenn die USB Sticks entfernt werden.
 
Mein Problem ist,
ich habe 4 gleiche Server.
Diese sollen die gleiche Konfiguration erhalten per Kickstart und dachte ich könnte das so lösen. Würde es dann also reichen nur den Ordner isolinux/ für die Installation zu nutzen?
Sprich: Ich kopiere per dd den Ordner in der ISO "isolinux" auf nen Stick und lass booten?

Mein Problem: Der Stick ist mit der Methode nicht bootbar ...
Ich bin sehr am verzweifeln :(
 
Wie gesagt: installier Dir in einer VM wie beschrieben Linux normal auf den Stick (mit der ganz normalen Installationsoberfläche), passe auf einem Server die Installation so an, wie Du sie für alle Server benötigst und dd dann den Stick auf 3 andere Sticks (das dd aber nicht aus dem System heraus das vom USB gebootet ist, sondern z.B. von einem CD Live System). Das System auf dem Stick darf für die dd Aktion nicht laufen.

EDIT: all das setzt natürlich voraus, dass die Netzwerkkarten per DHCP eine IP Adresse bekommen.

Die Geschichte ist dead simple! Glaubs mir, gerade erst vor ein paar Tagen so gemacht, läuft super.
 
Last edited by a moderator:
wo baut er auf einem Livesystem auf? Ich sehe das so, daß er sich einfach einen USB-Stick erstellen will, der einfach eine automatische Installation von CentOS durchführt - dafür ist das ganze Anaconda-ks.cfg-Gerödel doch da...

-> Stick rein, Rechner anschalten, warten, fertig.

Ist wesentlich flexibler als die so gern genommene Image-per-dd-Variante.


@TE: wenn das makeisofs sauber durchläuft reicht es eigentlich, das dabei entstehende Image per dd auf den USB-Stick zu packen - hier zumindest funktioniert der dann problemlos als bootbarer Stick.
 
Last edited by a moderator:
wo baut er auf einem Livesystem auf? Ich sehe das so, daß er sich einfach einen USB-Stick erstellen will, der einfach eine automatische Installation von CentOS durchführt - dafür ist das ganze Anaconda-ks.cfg-Gerödel doch da...

-> Stick rein, Rechner anschalten, warten, fertig.

Ist wesentlich flexibler als die so gern genommene Image-per-dd-Variante.

Genau! :D
ich häng nur an dem Schritt mit --> Daten auf USB und dann in den Server...
Ich bekomme es nicht hin das die Daten mit ks.cfg File (die ich schon vom ersten Server habe) es einfach installiert ._. Ich habe schon so viel probiert - auch die Doku von Red Hat durchgelesen!
 
Mir ist nicht ganz klar, ob er einen (bzw 4) Server haben will, die von USB das OS booten (dafür wäre meine Anleitung da), oder einen bootfähigen USB Stick mit den Installationsdateien erstellen will, mit dem er das System auf Platte installieren will. Im zweiten Fall hätte ich ihn falsch verstanden.
 
Tut mir Leid, wenn ich nicht ganz konkret geworden bin.
marce hat Recht. Ich versuche einfach eine ISO zu erstellen (Selbst darüber bin ich mir immer noch nicht im klaren, ob es die beste Lösung ist) die die originalen Daten einer CentOS 6.5 Minimal Installation beinhaltet + meine "anaconda-ks.cfg" Datei die mir dann alles automatisch installiert.
 
naja, dazu wurde anakonda / kickstart ja gemacht.

Kommt immer drauf an, was man will und wie die Infrastruktur ist - manche schwören auf kickstart, manche auf dd, manche auf netcat, ... - es gibt viele Möglichkeiten, automatisiert Installationen durchzuführen...
 
Hallo zusammen,
ich habe jetzt nach etlichen Stunden versucht und auch indirekt geschafft.
Die Kickstart File habe ich per "Web" erreichbar gemacht, eth0 konfiguriert und somit beim Start der Live ISO von CentOS ausgeführt.
Problem:
Habe bei 2 exakt gleichen Servern (Hardware) von einem bereits installierten die Kickstart File genommen und beim 2ten versucht auszuführen. Schon alleine die Kickstart Datei ist anscheinend falsch geschrieben worden. Mir wirft er schon Fehler vor, dass er kein RAID erstellen kann. Habe mir die Datei genauer angeschaut und siehe da:
Erst RAID --> dann die RAID Devices und so weiter.
Es steht schon von Grund auf an falsch in dieser Datei ... Daher habe ich die Server jetzt manuell installiert.

großes Aber:
Es gibt noch eine GUI, die es ermöglicht von Hand eine Kickstart File anzulegen. Ich werde das mal die Tage machen und schauen ob es damit klappt. Finde ich ganz genial!

--> https://access.redhat.com/site/docu...llation_Guide/ch-redhat-config-kickstart.html
 
Back
Top