Installazione kickstart da USB - Posizione kickstart


12

Dopo essere riuscito a ottenere una Fedora ISO da ricostruire correttamente (per una chiavetta USB) dopo aver aggiunto un file kickstart ( /server/548405/ ), ora ho un problema con l'individuazione del file kickstart sul supporto USB .

Quando questo viene fatto da un CD-ROM, puoi semplicemente avviare kickckstart aggiungendo questo parametro all'avvio:

linux ks=cdrom

Questo avvierà (a condizione che il file kickstart sia chiamato ks.cfg e si trovi nella radice del disco).

Ora, ovviamente, questo sarà diverso per l'unità USB, quindi dalla mia ricerca, ho ipotizzato che questa linea avrebbe fatto il lavoro:

linux ks=hd:sdb1:/ks.cfg

Evidentemente questo non funziona. Viene visualizzato un errore che mi informa che l'unità è già montata e non può essere rimontata.

EDIT: messaggio di errore effettivo:

mount: /dev/sdb1 is already mounted or /run/install/tmpmnt0 busy
Warning: Can't get kickstart from /dev/sdb1:/ks.cfg

Per verificare che la sintassi fosse corretta, ho inserito il file kickstart su un'altra chiavetta USB e ho caricato lo stesso comando per prendere ks.cfg dalla nuova posizione:

linux ks=hd:sdc1:/ks.cfg

Questo funziona (a condizione che le chiavette USB siano montate in ordine, avvia -> sdb1, kickstart -> sdc1). L'installazione si avvierà e completerà l'installazione senza problemi. Ovviamente dover usare 2 pen drive è alquanto frustrante e inaffidabile.

C'è un modo per aggirare questo?


Ci hai provato ks=cdrom, vero?
Michael Hampton,

Sì, l'ho fatto, ma non trova il file kickstart.
dooffas

hai provato linux ks = hd: sbd1 / ks.cfg?
Archemar,

I passaggi descritti qui sono quelli che ho usato per costruire la mia chiave USB.
Vitalii,

Risposte:


4

Ho provato di tutto, ma solo questo sembra funzionare: metti ks.cfg all'interno di initrd. Quindi i passaggi seguenti estraggono initrd, aggiungi il ks.cfg e ricrealo. Testato con CentOS7

Innanzitutto monta l'immagine .iso originale sul tuo PC e copia il suo contenuto in tmp /

Poi,

#Keep the original file
cp -ai tmp/isolinux/initrd.img initrd.img.orig
mkdir irmod
cd irmod

#Extract initrd in irmod/
xz -d < ../tmp/isolinux/initrd.img | cpio --extract --make-directories --no-absolute-filenames

#Add the ks.cfg in there
cp ../tmp/ks.cfg .

# Recreate the initrd.img inside isolinux/
find . | cpio -H newc --create | xz --format=lzma --compress --stdout > ../tmp/isolinux/initrd.img

#cleanup
cd ..
rm -r irmod

# Add  ks=file:/ks.cfg to the boot parameters in isolinux.cfg. you can do it by hand, this is an example for our own isolinux.cfg
sed -s -i 's|ks=.*ks\.cfg ksdevice=link|ks=file:/k1.cfg|' ../tmp/isolinux/isolinux.cfg ../isolinux.cfg

Quindi procedere con la creazione dell'immagine come al solito:

cd tmp/

imgname="inaccess-centos7-ks1-v1.iso"
xorriso -as mkisofs -R -J -V "CentOS 7 x86_64" -o "../${imgname}" \
        -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4  \
        -boot-info-table -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin .
cd ..

Questo è più o meno lo stesso che ho fatto nell'articolo collegato (Ricostruisci Fedora 19 ISO aggiungendo Kickstart per l'installazione USB). Grazie per la tua risposta.
dooffas,

7

Sono stato in grado di risolvere questo problema nel modo seguente:

  • Posiziona il file kickstart nella parte superiore della isolinuxdirectory e assicurati che sia denominatoks.cfg
  • il mio isolinux.cfgfile è simile al seguente:

    label linux
      menu label ^Install CentOS 7
      kernel vmlinuz
      append initrd=initrd.img inst.ks=hd:LABEL=CentOS\x207\x20x86_64:/isolinux/ks.cfg inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
    

L'uso dell'etichetta dell'unità quando si ks.cfgfa riferimento rende l'immagine ISO risultante più portatile. (può essere trasformato in un'unità USB avviabile)


2

Il mio metodo preferito è usare UUID, perché è stabile.

Uso due pendrive, prima con CentOS, secondo con kickstart. Dopo aver salvato un kickstart sul secondo pendrive, controllo il suo UUID in Linux con il comando blkid: / dev / sdg1: UUID = "885E: 0BD1" TYPE = "vfat"

E dopo lo uso nella pagina di installazione: ks = hd: UUID = 885E: 0BD1: /ks.cfg

Funziona veramente!


Bu stabile non portatile
Ricardo Cristian Ramirez,

1

Devi puntare a / sda1 perché quando si avvia da USB sda è l'USB, sdb è il primo disco rigido e così via


no, non è sempre così.
sivann,

0

Ora hai una partizione sulla chiavetta USB delle dimensioni dell'immagine ISO. Basta creare un'altra partizione sulla chiavetta USB usando lo spazio di riposo, formattarlo e posizionare i file kickstart lì.

UPD: prova fdisk, dato che partedsembra non funzionare in questo caso.

UPD1: iso deve essere ripetuto con xorriso

UPD2: consultare https://serverfault.com/a/551307/134234


Ho anche provato questo, per favore vedi il mio altro post: serverfault.com/questions/549158
dooffas

@dooffas L'ho visto, non sei stato fortunato con Gparted. Hai davvero provato fdisk? Ho ricreato il tuo caso con volume lvm e almeno fdisk ha creato correttamente la seconda partizione.
Veniamin,

Ho provato fdisk, tuttavia non legge correttamente la tabella delle partizioni. Pensa che la partizione che contiene l'immagine di Fedora occupi quasi 8 GB, il che non è vero. Sembra che la scrittura dell'immagine fedora sull'unità danneggi la tabella delle partizioni.
Dooffas,

@dooffas Spiacente, nel mio laboratorio ho ricreato iso con xorriso ma ho dimenticato di annotarlo. Si prega di trovare i miei aggiornamenti.
Veniamin,

questo non funziona. anche dopo aver creato le partizioni, l'intero disco viene montato dal programma di installazione e le partizioni non possono essere utilizzate.
sivann,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.