Pagina 1 di 2

Spostare Slackware da hhd interno a hdd esterno usb

Inviato: mar 7 mar 2023, 8:41
da bob76
Buongiorno a tutti,
ho una installazione di slackware/64 15 installata su hdd. Ora ho dovuto collegare il disco via usb. Per non perdere tale installazione vorrei sapere come configurare il file init in modo tale che all'avvio venga caricato il driver di supporto USB per poter avviare il sistema. Nello stesso disco ho anche una opensuse che si avvia normalmente, quindi potrei modificare i file direttamente da lì. Ho letto la guida di TARGZETA, tra l'altro molto esauriente e ben fatta, ma ho delle lacune e alcuni punti oscuri da chiarire. Nella directory /initrd-tree c'è gia, ovviamente, il file init, in quelle /bin è anche già presente busybox. A quanto pare dovrei inserire le librerie necessarie(che non so se sono già presenti) e far avviare la minislack menzionata nella guida (non ho la più pallida idea di come fare!). Una volta preparato la struttura initrd e creato il pacchetto initrd.gz vorrei rinominare la vecchia configurazione in .old in modo da non perderla nel caso qualcosa andasse storto e rimpiazzarla con quella nuova. In dettaglio come devo fare? :shock:

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: mar 7 mar 2023, 9:13
da ponce
metto il link alla guida, potrebbe essere utile per chi provera' ad aiutarti

http://web.archive.org/web/201210190720 ... ennina_USB

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: mar 7 mar 2023, 14:46
da targzeta
Ciao,
dalla opensuse dovresti riuscire a montare e vedere il disco usb dove si trova la Slackware (diciamo /mnt/usb). A questo punto dai in una shell il comando:

Codice: Seleziona tutto

chroot /mnt/usb
con questo comando hai una shell di root all'interno della tua slackware. Da qui prova a dare il comando:

Codice: Seleziona tutto

mkinitrd -r UUID -m usb_storage -w 3
dove UUID è l'uuid della partizione root della slackware. La vedi con:

Codice: Seleziona tutto

lsblk -o name,label,uuid
(puoi usare anche la label, se vuoi). Il comando mkinitrd ti crea il file /boot/initrd.gz da usare con il loader (lilo o grub).

Dovrebbe bastare, ma nel caso, posta anche l'immagine dell'errore che ottieni,
Emanuele

P.S. Il '-w 3' è il timeout che si prende initrd prima di switchare dentro il rootfs. Essendo il tuo un disco USB ci ho messo 3 (sono secondi), che a volte basta, a volte è troppo, a volte è poco. Se vuoi, mettici un numero maggiore o minore.

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: mar 7 mar 2023, 18:39
da bob76
Ciao targzeta,
ho provato, ma mi dà questo errore.
Schermata da 2023-03-07 18-36-06.png
Schermata da 2023-03-07 18-36-06.png (60.36 KiB) Visto 3465 volte

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: mar 7 mar 2023, 19:36
da targzeta
Facciamo a step. Nella opensuse lancia il comando

Codice: Seleziona tutto

lsblk -o name,label,uuid
(così com'è, senza spazi dopo le virgole) e posta qui la riga relativa alla root della Slackware.

Emanuele

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: mar 7 mar 2023, 20:59
da bob76
Ciao Emanuele,
ecco la risposta al comando
Schermata da 2023-03-07 20-57-40.png
Schermata da 2023-03-07 20-57-40.png (26.41 KiB) Visto 3454 volte

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: mar 7 mar 2023, 21:10
da bob76
Fuori dal chroot la risposta al comando è questa:
Schermata da 2023-03-07 21-09-44.png
Schermata da 2023-03-07 21-09-44.png (56.82 KiB) Visto 3452 volte

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: mar 7 mar 2023, 22:21
da bob76
Ciao, dovrei aver risolto per quanto riguarda la creazione del file initrd.gz. Il problema ora è che devo convincere grub ad usare quello e montare il disco giusto. Si ostina a montare cose inesistenti. Come fare?

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: mer 8 mar 2023, 9:28
da ponce
prima di dare il chroot bisognerebbe che tu montassi anche un paio di cosette che ti serviranno una volta che sarai nell'ambiente chroot: ammettendo che tu monti il disco con Slackware su /mnt/usb sarebbe opportuno che tu dessi anche questi comandi

Codice: Seleziona tutto

mount -o bind /dev /mnt/usb/dev
mount -o bind /sys /mnt/usb/sys
mount -t proc proc /mnt/usb/proc
a questo punto, una volta dato

Codice: Seleziona tutto

chroot /mnt/usb
lsblk e le altre utility dovrebbero funzionarti tranquillamente

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: mer 8 mar 2023, 15:34
da targzeta
Ciao ponce. Ho seguito un po' Bob in privato.

Al netto degli errori (che vedremo di risolvere al prossimo giro), lo initrd.gz è stato creato. L'avvio comunque non va! Dice sempre che non riesce a trovare il rootdev:

Codice: Seleziona tutto

ERROR:  No /sbin/init found on rootdev (or not mounted).  Trouble ahead.
You can try to fix it. Type 'exit' when things are done.
Dalla shell abbiamo visto che il modulo usb-storage (così come i vari {ueox}hci-{hcd,pci}) è in memoria, però staccando e poi riattaccando l'HD, il kernel dice solo che è stato inserito un nuovo device USB. Niente riguardo le partizioni.

Bob. Puoi postarci l'output del comando

Codice: Seleziona tutto

lspci -vv
lanciato come root, ovviamente nella OpenSUSE? Inoltre, ci alleghi il tuo initrd.gz della Slackware?

Emanuele

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: mer 8 mar 2023, 18:29
da bob76
Schermata da 2023-03-08 18-28-53.png
Schermata da 2023-03-08 18-28-53.png (63.46 KiB) Visto 3372 volte

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: mer 8 mar 2023, 21:31
da joe
Hey bob, non ho seguito tutta la fazenda, ma c'è un refuso nel comando...

Non è "lspc" ma lspci

Il tasto TAB è tuo amico, grazie all'autocompletamento dei comandi. ;)

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: mer 8 mar 2023, 23:10
da targzeta
La cosa è andata avanti. Abbiamo copiato tutti i 300M di moduli nell'initrd ed effettivamente ora la Slackware è partita, ma con errori dovuti allo fstab, secondo me. Dobbiamo ancora:
  • sistemare l'fstab per fargli montare il rootfs alla Slackware
  • capire quali sono i moduli strettamente necessari allo initrd
Intanto @bob76, puoi allegare qui il tuo /etc/fstab della Slackware?

Emanuele

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: gio 9 mar 2023, 8:04
da bob76
fstab.zip
(383 Byte) Scaricato 126 volte
Ciao Emanuele, finalmente siano a buon punto. Non ho solo capito perché bisognava montare /dev /sys proc all'interno della slack. Ti allegao la fstab.

Re: Spostare Slackware da hhd interno a hdd esterno usb

Inviato: gio 9 mar 2023, 11:39
da joe
Perché serve per dopo quando avrai eseguito il chroot, cioè quando cambi di fatto la "root directory". Se ometti il montaggio di quei percorsi, dopo ti ritroveresti con la root cambiata, ma da lì dentro non avresti accesso a tutto l'ambaradan che il kernel (quello del sistema "vero" regolarmente avviato) ha messo in piedi all'avvio del sistema "host" cioè Opensuse nel tuo caso se non ho letto male i primi messaggi.

In pratica quando fai il chroot tu continui ad utilizzare il kernel di opensuse (per forza, il kernel lo avvii al boot della macchina), e lui ha bisogno di interagire con quelle speciali directories "eteree"

Codice: Seleziona tutto

/sys
/proc
/dev
Nel momento in cui fai il chroot, /sys non esisterà più per il kernel, perché la root "/" sarà appunto cambiata e rispetto al sistema opensuse, si troverà in "/mnt/usb".
Ma "/mnt/usb/dev", "/mnt/usb/proc", "/mnt/usb/sys", non conterranno nulla che attenga al kernel in uso.

Ecco che allora devi provvedere tu a mano a montare quei percorsi necessari al kernel, che appunto contengono già roba caricata dal kernel stesso. E li devi montare nelle future directories corrispondenti, all'interno di quella che diventerà la nuova root directory "/" ovvero appunto /mnt/usb, e di conseguenza:

Codice: Seleziona tutto

/mnt/usb/dev
/mnt/usb/proc
/mnt/usb/sys
A quel punto quando eseguirai il comando "chroot /mnt/usb", /mnt/usb diventerà "/", la nuova root ovviamente, e in /dev ad esempio avrai i devices veri caricati dal kernel all'avvio della macchina... ma quel /dev in realtà è pur sempre il vecchio /mnt/usb/dev, che hai popolato tu con i "dispositivi" corretti grazie alla preventiva operazione di mount.

Ok, prendila alla grosso modo... ma più o meno il senso dell'operazione è quello.