LFS su chiavetta usb

Happiness

Utente Attivo
128
7
CPU
Intel i5 3570k @4.5Ghz + Scythe Mine 2
Scheda Madre
Asrock Z77 Extreme4
HDD
Samsung 840 250Gb
RAM
2x4GB Corsair Vengeance
GPU
Gigabyte 650 Ti 1GB
Monitor
DualHead 1680x1050
PSU
XFX Pro550 + APC Back-UPS ES 550VA
Case
Aerocool Vs-9 + 3xGelid Silent 120
OS
Linux Mint 14 e Windows 8
Ho la necessità di creare una piccola installazione di Linux From Scratch da avviare da chiavetta usb su qualunque computer. Ho installato LFS in macchina virtuale, spostata su pendrive e installato grub modificando fstab e grub.cfg e qui sorge il problema:

Attualmente ho scritto così il file grub.cfg:
[...]
menuentry 'GNU/Linux, with Linux 3.2.6-lfs-7.1'
{
search --no-floppy --fs-uuid --set=root b0705ec1-d02f-41d9-8bbd-8caf1cd02d70
linux /boot/vmlinuz-3.2.6-lfs-7.1 rootdelay=20 root=/dev/sdb1 ro
}

Il sistema si avvia correttamente però sta usando sdb1 come riferimento e quindi usandolo su un computer con un ordine diverso dei dischi non credo si avvii.
Quello che vorrei fare sarebbe di cambiare la parte evidenziata con root=UUID=b0705ec1-d02f-41d9-8bbd-8caf1cd02d70 ma se lo faccio ottengo un kernel panic.

Da quello che ho letto dovrei compilare nel kernel i driver necessari all'avvio, il problema è che non riesco a capire come sapere quali siano. Dalle poche informazioni che ho trovato sembra che vengano già compilati di default, ma o manca qualcosa oppure sto sbagliando configurazione.

Spero che qualcuno si sia già "dilettato" con LFS.

Grazie in anticipo.
 

Ico Bellungi

Utente Èlite
2,920
626
Strano che ti dia un kernel panic, l'UUID dovrebbe non aver nessuna fatica a rilevarlo.
Non è che nel file di configurazione di grub hai la riga "GRUB_DISABLE_LINUX_UUID=true" de-commentata?
 

Happiness

Utente Attivo
128
7
CPU
Intel i5 3570k @4.5Ghz + Scythe Mine 2
Scheda Madre
Asrock Z77 Extreme4
HDD
Samsung 840 250Gb
RAM
2x4GB Corsair Vengeance
GPU
Gigabyte 650 Ti 1GB
Monitor
DualHead 1680x1050
PSU
XFX Pro550 + APC Back-UPS ES 550VA
Case
Aerocool Vs-9 + 3xGelid Silent 120
OS
Linux Mint 14 e Windows 8
Strano che ti dia un kernel panic, l'UUID dovrebbe non aver nessuna fatica a rilevarlo.
Non è che nel file di configurazione di grub hai la riga "GRUB_DISABLE_LINUX_UUID=true" de-commentata?

Intanto grazie, è la prima risposta sensata che ricevo da giorni.

Il file dovrebbe essere /etc/default/grub se non sbaglio, ma non viene creato seguendo la guida di LFS... può essere questo il problema?
 

Ico Bellungi

Utente Èlite
2,920
626
Dipende dalla versione di grub che hai installato, quel file riguarda Grub2, sulla versione 1 non c'era. Qui ci sono un po' di dettagli sulle differenze tra le due versioni.
Purtoppo non ho mai installato from scratch (la mia ragazza non vuole, non sto scherzando) e non ho strumenti così precisi per aiutarti.
In giro su Google alcuni sostengono che il sistema non rilevi gli UUID se on è stato installato con l'initrd. Effettivamente l'initrd ti toglierebbe un po' di grane caricandoti all'avvio un bel po' di driver utili.

Un'altra cosa che mi viene in mente è che potrest aver compilato il kernel mettendo i driver USB come "modulo" e non come piantati nel kernel dall'inizio. In questo caso i driver che ti servono al boot verrebbero caricati in un secondo momento, rendendo impossibile il boot
(no, aspè, questo no, altrimenti dovresti beccarti il kernel panic anche con /dev/sdb1)
 

Happiness

Utente Attivo
128
7
CPU
Intel i5 3570k @4.5Ghz + Scythe Mine 2
Scheda Madre
Asrock Z77 Extreme4
HDD
Samsung 840 250Gb
RAM
2x4GB Corsair Vengeance
GPU
Gigabyte 650 Ti 1GB
Monitor
DualHead 1680x1050
PSU
XFX Pro550 + APC Back-UPS ES 550VA
Case
Aerocool Vs-9 + 3xGelid Silent 120
OS
Linux Mint 14 e Windows 8
Ho grub 1.99 stando al libro, ma la cosa strana è che usa grub.cfg che dovrebbe essere proprio di grub2 invece.
Nel link che mi hai dato dicono "Dynamic module loading", installando grub2 si risolverebbe qualcosa?

Per il discorso dei moduli dovrebbe già essere tutto compilato nel kernel, l'unico problema che ho avuto è stanto provando a fare il boot da una usb3 per la quale non ho incluso i driver.

A questo punto credo mi convenga creare l'initrd che mi sembra la via "più sicura"...

Purtoppo non ho mai installato from scratch (la mia ragazza non vuole, non sto scherzando) e non ho strumenti così precisi per aiutarti.

Lo fa perchè ti vuole bene :asd:
 
Ultima modifica:

Happiness

Utente Attivo
128
7
CPU
Intel i5 3570k @4.5Ghz + Scythe Mine 2
Scheda Madre
Asrock Z77 Extreme4
HDD
Samsung 840 250Gb
RAM
2x4GB Corsair Vengeance
GPU
Gigabyte 650 Ti 1GB
Monitor
DualHead 1680x1050
PSU
XFX Pro550 + APC Back-UPS ES 550VA
Case
Aerocool Vs-9 + 3xGelid Silent 120
OS
Linux Mint 14 e Windows 8
Per il discorso boot ho risolto facento un initramfs, che alla fine è molto più veloce che non ricompilare il kernel (soprattutto dovendo andare a naso), sempre ammesso che si possa fare.

Per chi volesse si trovano le istruzioni su BLFS, essenzialmente:
- Scaricate e installate CPIO: cpio-2.11
- Installate lo script initramfs: About initramfs
- Create l'initiam.img: mkinitramfs 3.2.6
- Modificare grub.cfg:
[...]
menuentry 'LFS 7.1 Initrd'{
search --no-floppy --fs-uuid --set=root 936c71a9-c6e0-41b8-a857-7b2a4b2064bb
linux /boot/vmlinuz-3.2.6-lfs-7.1 rootdelay=20 root=UUID=936c71a9-c6e0-41b8-a857-7b2a4b2064bb ro
initrd /boot/initrd.img-3.2.6
}

Considerando che non mi interessa una distribuzione general purpose ma mi basta che esegua programmi già compilati, script bash e abbia tutte le funzionalità di rete cosa si può rimuovere?
Fin ora ho eliminato GCC, librerie statiche (.a e simili), documentazione, localizzazione linguistica e degli errori di glibc, perl (su questo ho qualche dubbio ma fin ora non da problemi) e vim (che devo sostituire con vi o nano) passando da circa 700mb a 130mb.

Se non incasina troppo le cose pensavo di aggiungere python e x.org per poter avere interfacce grafiche per gli script, altrimenti mi devo fare un' interfaccia testuale userfriendly (che è un po' un ossimoro).
 
  • Mi piace
Reazioni: Ico Bellungi

Ico Bellungi

Utente Èlite
2,920
626
Posso chiederti per quale utilizzo hai installato quella chiavetta USB from sratch?
Dev'essere stato un lavoraccio, di sicuro non l'hai fatto per sport
 

Happiness

Utente Attivo
128
7
CPU
Intel i5 3570k @4.5Ghz + Scythe Mine 2
Scheda Madre
Asrock Z77 Extreme4
HDD
Samsung 840 250Gb
RAM
2x4GB Corsair Vengeance
GPU
Gigabyte 650 Ti 1GB
Monitor
DualHead 1680x1050
PSU
XFX Pro550 + APC Back-UPS ES 550VA
Case
Aerocool Vs-9 + 3xGelid Silent 120
OS
Linux Mint 14 e Windows 8
Posso chiederti per quale utilizzo hai installato quella chiavetta USB from sratch?
Dev'essere stato un lavoraccio, di sicuro non l'hai fatto per sport

Progetto di tesi: dovrei fare una "distribuzione" (se così si può chiamare) avviabile da chiavetta per testare le prestazioni di una rete.
Dovrebbe essere una cosa più personalizzabile possibile in fase di sviluppo ma che sia userfriendly: inserisci la chiavetta, avvii il pc e ti parte un'interfaccia con i vari programmi di test.

Al momento ho fatto uno script che compila *quasi* automaticamente LFS (devo vedere se riesco gestire automaticamente i re-login), un po' di script per installarla su chiavetta e adesso dovrei fare l'interfaccia utente e ridurre le dimensioni.

Edit: un'altra cosa: ho impostato il sistema perchè logghi con l'utente root senza chiedere la password (opzione -a root nella riga tty1 di agetty), vorrei fargli lanciare lo script con l'interfaccia, ma usando l'opzione "-l /path/script" lo lancia a rpetizione finchè il sistema non lo disabilita.
Come posso fare in alternativa?
 
Ultima modifica:

Happiness

Utente Attivo
128
7
CPU
Intel i5 3570k @4.5Ghz + Scythe Mine 2
Scheda Madre
Asrock Z77 Extreme4
HDD
Samsung 840 250Gb
RAM
2x4GB Corsair Vengeance
GPU
Gigabyte 650 Ti 1GB
Monitor
DualHead 1680x1050
PSU
XFX Pro550 + APC Back-UPS ES 550VA
Case
Aerocool Vs-9 + 3xGelid Silent 120
OS
Linux Mint 14 e Windows 8
Devo chiedere di nuovo il vostro aiuto:
dovrei eseguire dei comandi dentro una login shell, e per farlo in bash posso usare
Codice:
su - <username> -c "<comando>"
(o -c ... - come sarebbe più corretto) il problema è che per l'utente "lfs" creato con
Codice:
groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs
passwd lfs
apre una shell non di login (quando uso logout mi dice di usare exit) e si blocca sul prompt.
Ho provato anche con comandi semplici tipo echo ma danno lo stesso problema.

La cosa strana è che non funziona solo con l'utente lfs e solo dentro allo script:
se provo con root o altri funzionano sia manualmente che in script
se creo lfs dentro allo script non funziona nè dentro nè fuori
se creo lfs a mano su -c funziona fuori dallo script ma non dentro

Come workaround stampo i comandi e richiedo all'utente di inserirli, ma è veramente una schifezza...
 
Ultima modifica:

Happiness

Utente Attivo
128
7
CPU
Intel i5 3570k @4.5Ghz + Scythe Mine 2
Scheda Madre
Asrock Z77 Extreme4
HDD
Samsung 840 250Gb
RAM
2x4GB Corsair Vengeance
GPU
Gigabyte 650 Ti 1GB
Monitor
DualHead 1680x1050
PSU
XFX Pro550 + APC Back-UPS ES 550VA
Case
Aerocool Vs-9 + 3xGelid Silent 120
OS
Linux Mint 14 e Windows 8
Non ci capisco più un tubo, ho provato a fare un script con i comandi di base:
Codice:
#! /bin/bash
#Create user and group
groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs
passwd lfs

#Login
su - lfs -c "echo \" Logged as lfs user!\" && logout"

#Delete user and related files
userdel lfs
rm -rf /home/lfs
e funziona sia sul sistema host che nella macchina virtuale che ho usato, nello script in cui mi seve non c'è verso e francamente non capisco cosa possa influenzarlo.
Alla faccia del determinismo :asd:
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!