Grub current su slackware 14.2 - da dualboot a singolo

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da joe »

In altra occasione avevo creato un dual-boot 14.2/current e avevo reinstallato GRUB dall'installazione di slackware current. Questo perché la versione di grub della current, più recente, disponeva di una funzionalità che mi aveva consentito di impiegare una configurazione particolare, diciamo piuttosto "statica" del menù di boot (non ricordo più di preciso dovrei ripescare la vecchia discussione in cui ne avevamo parlato sul forum, ma non è così importante questo dettaglio).

Il mio PC non supporta UEFI, ma il mio disco è partizionato in modalità GPT con una partizione BIOS-boot in testa dove è stato appunto messo grub. O meglio il pezzo di grub "eseguibile" adibito all'avvio del sistema. Ad ogni modo se c'è supporto a uefi si mette grub in una partizione FAT ad hoc (la partizione EFI di solito montata in /boot/efi). Altrimenti si deve prevedere una partizione BIOS-Boot non formattata.

https://www.gnu.org/software/grub/manua ... stallation

Vorrei eliminare la partizione di slackware current perché mi occupa 30 GB per niente.
Il problema è il seguente: se la elimino il sistema non si avvia più!
Ho provato (per errore!) e ho fortunatamente ho tamponato con un vecchio CD di slackware 14.2 ricreando la partizione eliminata: non avendo toccato il filesystem che vi era dentro tipo allargando la partizione della 14.2 o cose del genere che avrebbero potenzialmente scritto sullo spazio che era della current... alla fine sono riuscito a risolvere e adesso ho di nuovo la partizione della current con al suo interno i files di Grub, che a quanto pare sono necessari per avviare il sistema.

Secondo voi è possibile, spostare i files di configurazione di grub ad esempio nella dir /boot della slackware 14.2 in modo da preservare la configurazione attuale e far sì che ad utilizzarla sia sempre la versione di grub attualmente installata nella partizione BIOS Boot, senza reinstallare grub (versione più vecchia) dalla 14.2... ?

Non so se mi sono spiegato chiaramente.
Il problema è proprio che Grub è ambivalente, e la cosa non mi è mai piaciuta: mette il "motore" nella partizione dedicata, nel mio caso sda1 se ben ricordo, mentre tutto il corredo di files necessari come la configurazione ecc sono lasciati nella partizione del sistema... Ma in caso di dualboot c'è il caso che questa partizione possa essere eliminata o rimaneggiata: se il grub.cfg ivi presente non è più raggiungibile dall'eseguibile installato in partizione bios boot, il sistema non parte perché grub non funziona più...
Era meglio il buon vecchio lilo da questo punto di vista!

Veniamo al pratico.
Avete qualche consiglio per eliminare la partizione della current e continuare ad utilizzare il nuovo Grub con la configurazione attuale?
Grazie in anticipo!

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3026
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.6.16
Desktop: lxde
Località: Pisa
Contatta:

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da ponce »

se vuoi continuare ad usare il nuovo grub l'unico modo che vedo e' installare lui e le sue dipendenze sulla 14.2 al posto del vecchio.

rik70
Iper Master
Iper Master
Messaggi: 2492
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da rik70 »

Se ho capito bene la faccenda, come già accennato da ponce, devi crearti il pacchetto grub della current sulla 14.2.
Poi, dopo aver eliminato la partizione, reinstallare grub - necessario per ricreare tutti i file necessari in /boot/grub - e all'occorrenza rigenerare il grub.cfg.

Avatar utente
lablinux
Linux 4.x
Linux 4.x
Messaggi: 1212
Iscritto il: gio 27 nov 2008, 12:23
Desktop: Gnome
Distribuzione: Debian testing
Località: Rho

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da lablinux »

Da ignorante in materia, non puoi semplicemente usare il grub della 14.2 e lasciar perdere la configurazione personalizzata?

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da joe »

Forse prima di eliminare la partizione, potrebbe essere il caso di:

1- creare e testare chiavetta USB con dentro slackware live: se qualcosa andasse storto si avvia il PC con qualche comodità in più del CD di installazione della slack14.2, compreso accesso ad internet meno problematico dalla live slack immagino.

2- dopo la nuova installazione di grub sulla 14.2, ho fatto girare il grub-mkconfig avendo prima copiato la directory della current:
/mnt-current/etc/grub.d
/mnt-currentetc/default/grub

Ho anche editato un attimo uno dei files "custom"... eliminando le voci relative ai kernel della current che non ci saranno più...

Alla fine ho ottenuto il /boot/grub/grub.cfg che sarà poi proprio lui a contenere le istruzioni più importanti.

Come dicevo la configurazione di grub che avevo adottato è personalizzata e in particolare ho tolto l'automatismo di ricerca dei sistemi, impostandoli di fatto a mano. Si poteva anche ritoccare direttamente il /boot/grub/grub.cfg credo che non sarebbe stato tropo diverso in questa situazione.

3- Non credo che serva reinstallare grub nella prima parte del disco nella partizione BIOS-Boot protettiva... Perché la versione credo sia se non uguale molto simile. Vediamo... grub-2.04 è quello installato in Bios-Boot, mentre quella aggiornata sulla 14.2 è la 2.06.
Va be' per non far danni, meglio installare quest'ultima anche in BIOS-Boot, se non altro per coerenza.
https://docs.slackware.com/howtos:slack ... efi#grub_2
Nel caso del mio sistema quindi si lancia

Codice: Seleziona tutto

grub-install --modules=part_gpt /dev/sda
Ok, direi che è tutto...
Vi farò sapere come è andata.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da joe »

lablinux ha scritto:
gio 4 nov 2021, 15:56
Da ignorante in materia, non puoi semplicemente usare il grub della 14.2 e lasciar perdere la configurazione personalizzata?
Assolutamente no... 8)
La config personalizzata la voglio tenere. È più pulita e all'aggiornamento del kernel mi permette di gestire il tutto con link simbolici al kernel senza dover toccare nuovamente grub. Preferisco così.
Procedo e riporto...

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da joe »

Ho provato e sembra funzionare: Il nuovo menù così come l'ho modificato presenta le sole due voci di slackware 14.2 (kernel generic e huge).
Funziona...
Tutto tranne la chiavetta di slackware live!
Stranamente è andato tutto liscio e non è servita. Ad ogni modo ho il sospetto che nel BIOS del mio PC ci sia qualcosa da abilitare perché nei dischi rilevati ho visto solo SSD e HDD interni collegati via SATA. Potrebbe essere che il problema sia legato alla porta USB frontale, ma non mi convince come ipotesi. È parecchio che non avvio da USB, ma anche l'altro giorno non sono riuscito ad avviare nulla e avevo dovuto andare a cercare il DVD di slackware-14.2 in scatoloni archiviati nella polvere.
La scheda madre è una vecchia asus P5N-MX.
Nel BIOS la priorità di Boot è impostata su "Removable" - "Hard drive" - ecc ecc.
Indagherò, ora non mi viene in mente niente, se per caso voi avete sulla punta della lingua l'opzione da abilitare nel BIOS ditemi pure!

Detto questo per quanto riguarda Grub la procedura ha avuto buon esito. L'unica cosa che mi resta sullo stomaco è la struttura del funzionamento del bootloader in questione.
Come ho già anticipato in primo post, in un sistema multiboot, dove un SO può essere rimosso e sostituito o la partizione eliminata ecc... non è comodo dover riconfigurare tutto grub.
Non sarebbe meglio mantenere tutto l'occorrente a Grub in una piccola partizione dedicata? Con la sua configurazione per avviare gli N sistemi?
A quel punto se si dovesse eliminare la partizione del sistema N, si potrebbe comunque avviare gli altri N-1.
Mi sembra strano che sia io a scendere dal pero adesso, probabilmente qualcun altro si sarà posto il problema prima di me non vi pare?
Sapete niente di escamotage del genere per ottenere una situazione un po' più solida? Magari pur sempre usando Grub se si può... vista la versatilità.

rik70
Iper Master
Iper Master
Messaggi: 2492
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da rik70 »

joe ha scritto:
gio 4 nov 2021, 19:16
Sapete niente di escamotage del genere per ottenere una situazione un po' più solida?
Sì che fa. Partizione separata, montata dove ti pare, dove piazzare i file necessari e il config generato.
Richiede una nuova installazione di grub.

Dai un'occhiata a 'info grub-install'.

rik70
Iper Master
Iper Master
Messaggi: 2492
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da rik70 »

*P.s.
In particolare:
'--boot-directory=DIR'
Install GRUB images under the directory 'DIR/grub/' This option is
useful when you want to install GRUB into a separate partition or a
removable disk. If this option is not specified then it defaults
to '/boot', so

grub-install /dev/sda

is equivalent to

grub-install --boot-directory=/boot/ /dev/sda

Here is an example in which you have a separate "boot" partition
which is mounted on '/mnt/boot':

grub-install --boot-directory=/mnt/boot /dev/sdb

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da joe »

Ah ecco, darò un'occhiata e vediamo se riesco a combinare qualcosa.

Quindi i files in /etc sembrerebbero solo una impostazione preliminare per generare poi il grub.cfg... che col resto della "ciccia" (immagino vari "moduli" richiamabili o simili) viene messo in /boot/grub, a meno di non specificare altri percorsi più "esotici".
Capito...

Offtopic: Ho risolto anch l'inghippo del BIOS.Praticamente rileva come "Removable" unicamente il lettore Floppy. La chiavetta USB la vede tra gli "Hard Drives". Io mi limitavo a mettere in cima alla lista la voce "Removable" nel menù Boot/Priority, invece bisogna andare in Boot/Hard Drives, mettere in cima alla lista la chiavetta (nel mio caso Kingstone qualcosa) e in seconda posizione il disco di sistema (nel mio caso l'SSD Samsung ecc). Poi si va in "priority" e si posiziona tipo il CDrom in cima, Removable sotto (perché mi è tornato in mente che per removable intende dischi formattati direttamente "super-floppy", senza partizioni, quindi può sempre servire non si sa mai), ed infine gli "hard drives". Così se non ci sono CD/DVD avviabili nè altri supporti rimovibili, inizia a cercare tra gli HDD tra cui anche la chiavetta in questione.
Non ricordo se c'era anche un tasto tipo come sui portatili che mostra e fa scegliere il dispositivo di boot senza dover entrare nelle impostazioni bios e riavviare.. Va be' non è una cosa che faccio tutti i giorni.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da joe »

Offtopic: Svelato l'arcano del boot menù della scheda Asus P5N-MX. Per scegliere il supporto di boot tra quelli rilevati, all'avvio occorre premere ripetutamente il tasto F8.
Ad perpetua memoria

rik70
Iper Master
Iper Master
Messaggi: 2492
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da rik70 »

joe ha scritto:
gio 4 nov 2021, 20:28
Quindi i files in /etc sembrerebbero solo una impostazione preliminare per generare poi il grub.cfg... che col resto della "ciccia" (immagino vari "moduli" richiamabili o simili) viene messo in /boot/grub, a meno di non specificare altri percorsi più "esotici".
Esatto. Però il funzionamento è da testare sul campo.
Il nuovo grub.cfg penso che andrà messo in `DIR/grub`.
E bisognerà verificare che le voci di avvio generate puntino correttamente alle immagini del kernel, etc.

Ma questo dovrai dirlo tu a noi 8)

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da joe »

Ho testato con una DIR target di prova e grub va a mettere lì lo stesso contenuto che c'è in /boot/ cioè crea la subdir "grub" e dentro si trovano un sacco di cose sue... fonts locale i386-pc grubenv. In seconda battuta col solito grub-mkconfig si crea lì dentro alla dir di prova (non dentro a alla sub-dir dir-prova/grub) il nostro grub.cfg, che per la cronaca è identico all'altro che ho in boot (ovvio perché la config in etc è la stessa e nel mio caso ho disabilitato automatismi tipo osprobe ecc... ma anche con quelli dovrebbe saltar fuori lo stesso risultato).
La dir di grub così creata occupa 11MB, per cui la mia partizione target potrebbe essere fatta di 100 MB per starci belli larghi. Ospiterà solo il necessario a Grub, mentre i kernel li tengo nelle varie root (nel mio caso solo in una visto che è un mono-boot).

Sto già trafficando con "fdisk".
Ho eliminato la partizione sda4, quella da 30 GB dove stava la current.
Ora volevo estendere la sda3 che è la root della mia slack-14.2, sistema principale...
Quindi prima di farlo visto che non è un operazione quotidiana meglio dare un'occhiata a come è consigliato di procedere.
In teoria con fdisk bisognerebbe rimuovere la partizione e ricrearla, ma se ben ricordo si deve far attenzione che il settore di inizio sia lo stesso di prima...

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da joe »

joe ha scritto:
gio 4 nov 2021, 22:04
Ho testato con una DIR target di prova e grub va a mettere lì lo stesso contenuto che c'è in /boot/ cioè crea la subdir "grub" e dentro si trovano un sacco di cose sue... fonts locale i386-pc grubenv. In seconda battuta col solito grub-mkconfig si crea lì dentro alla dir di prova (non dentro a alla sub-dir dir-prova/grub) il nostro grub.cfg.
Allora, una correzione doverosa!
Il nostro file di configurazione va messo proprio dentro la dir "grub" quando si lancia il grub-mkconfig.
Quello che ho scritto tra parentesi lì sopra è sbagliatissimo!
Andando a crearlo come ho scritto qui sopra, in /mnt/partizione-per-grub/grub.cfg, al riavvio non viene visto.
E in pratica GRUB non può far altro che porgerci la sua enigmatica console.
Da lì si può anche avviare il sistema volendo. Si riesce, ma non è certo quello che si vuole ottenere.

La cosa ha una certa logica:

Se in prima battuta si installa grub:
1- una parte dell'installazione (core.img) va a finire nella partizione BIOS-Boot. Questo pezzo è il "motore" l'eseguibile che girerà subito dopo il BIOS per capirci. Ovvero il bootloader propriamente detto.
2- un'altra parte è il nostro corredo di software necessario al bootloader per estendere le proprie funzionalità minimali. Questa parte nell'installazione si stabilisce di posizionarla dove si vuole, nel mio caso in una piccola partizione ad hoc che ho formattato con file-system EXT2. Il "bootloader" cercherà i suoi files di corredo proprio lì dentro.

Sì, ma... Qualcosa non torna non vi pare?
Certo! Perché in tutta questa storia manca il grub.cfg che collega il bootloader all'oggetto del suo lavoro cioè i vari sistemi da avviare (immagini kernel, initrd e loro opzioni varie).
Come fa il bootloader a sapere dove si trova grub.cfg ?
Infatti se da una parte con grub-install si specifica di associare al "bootloader" la directory/partizione in cui si trova il suo "corredo" (e lo si associa grazie all'opzione --boot-directory=)... dall'altra durante l'installazione non si specifica quale grub.cfg utilizzare.
Il grub.cfg lo si crea in secondo tempo con grub-mkconfig, ma in questa operazione non viene in alcun modo modificato il bootloader, lui ignorerà bellamente la posizione della configurazione da prendere in carico all'avvio.


Ok, concludendo... Insomma, la soluzione è posizionare il grub.cfg dove è sempre stato secondo tutte le guide, tutorial ecc ecc, ovvero nella directory "grub", proprio quella creata in fase di installazione con grub-install.

Evidentemente è il percorso di default, forse ve ne solo altri non lo so, in cui il bootloader si aspetta di trovare la configurazione.
Probabilmente nel man o nella documentazione di grub dovrebbe essere spiegato bene questo punto. Se lo trovo lo posto per completezza. Nel frattempo così funziona.


PS.
La soluzione di adibire una partizione ad hoc solo per il set di strumenti del bootloader grub più il file di configurazione risolve il problema di poter toccare una partizione di sistema anche eliminandola e avere la garanzia che eventuali altri sistemi in multiboot continueranno ad avviarsi senza problemi come sempre.
Ci saranno anche aspetti negativi in una scelta del genere... Chissà.

rik70
Iper Master
Iper Master
Messaggi: 2492
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Grub current su slackware 14.2 - da dualboot a singolo

Messaggio da rik70 »

joe ha scritto:
gio 4 nov 2021, 23:43
/mnt/partizione-per-grub/grub
L'errore sta tutto lì.

Il percorso completo deve essere:
/mnt/partizione-per-grub/boot/grub
Quindi:

Codice: Seleziona tutto

grub-install --boot-directory=/mnt/partizione-per-grub/boot [...]

Codice: Seleziona tutto

grub-mkconfig -o /mnt/partizione-per-grub/boot/grub/grub.cfg
Tieni presente che grub-mkconfig, per generare un config valido, si aspetta di trovare /boot/grub, altrimenti crea un file sostanzialmente "vuoto".
Probabilmente c'è un modo per istruirlo diversamente, forse qualche variabile d'ambiente... ...non so.
Perciò assicurati che /boot/grub esista, anche se vuota, prima di generare il nuovo config.

Riprova e dicci se 'sarai più fortunato' 8)

Rispondi