Makeramusb: avviare da disco USB con kernel statico

Forum dedicato ai Porting ufficiali e non di Slackware, vedi Slack/390, ARMedslack, Slamd64, Slackintosh, Ocsid, Sloox, Zenwalk, How-Tux, Slax etc etc

Moderatore: Staff

Regole del forum
1) Specificare nome e versione del porting.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
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
zoros
Linux 4.x
Linux 4.x
Messaggi: 1361
Iscritto il: lun 28 mag 2007, 22:51
Nome Cognome: Fabio`Zorba`
Slackware: 14.1
Kernel: 3.10.30-smp
Desktop: KDE-3.5(works!)
Località: Gorizia
Contatta:

Makeramusb: avviare da disco USB con kernel statico

Messaggio da zoros »

Ciao,
ho visto che la richiesta di un Linux che gira su disco USB è abbastanza ricorrente ... siccome serviva anche a me ho provato alcune soluzioni e quella che vi propongo mi sta dando ottime soddisfazioni ... Non sarò breve ! ...

Ho letto ovviamente vari articoli compreso quelli su Slacky ... e anche tutta la storia della patch al kernel che avrebbe risolto l'avvio da USB con kernel "monolitico" ... la patch non è stata accettata e quindi ci tocca proprio partire con una ramdisk ... comunque la soluzione che vi propongo permette di avviare anche un kernel statico ... vantaggio: il kernel si aggiorna abbastanza frequentemente, questa ramdisk può andar bene per anni, sempre la stessa ...

Principio di funzionamento: invece di usare una Label per identificare la partizione da montare, ho preferito usare un "signature" attraverso un file con nome di fantasia e passare questo nome come parametro di boot ... lo script init della ramdisk monta/smonta più volte tutti dischi e cerca in ogni disco il "signature file" in /etc ... se trova questo file allora tiene montato il filesystem ed avvia il sistema con il solito chroot, ecc.

Vantaggi: intanto non occorre specificare il tipo di filesystem (e non è poca cosa), poi si può usare qualsiasi partizione non necessariamente la prima, infine il sistema può essere usato anche per avviare da un normale HD semplificando non poco le cose come si dovrebbe capire leggendo avanti ...

Operativamente:
1) creiamo la ramdisk con questo scriptino, che intanto preleva dalla rete un'ottima busybox statica precompilata, in attesa di compilarne una su Slackware (si potrebbe prendere quella del DVD, ricordando però di portarsi dietro anche le librerie)

Codice: Seleziona tutto

#!/bin/sh
# *** Makeramusb *** copyleft (!C) FZ

#Thanks:
#jootamam: http://jootamam.net/howto-initramfs-image.htm
#spina: http://www.slacky.eu/wikislack/index.php?title=Slackware_su_pennina_USB

echo "Removing previous structure and files ..."
#--------------------------------------------------------
rm -Rf work

echo "Creating the folder structure ..."
#--------------------------------------------------------
mkdir -p work/initramfs/{bin,sbin,etc,proc,sys,newroot}
cd work
touch initramfs/etc/mdev.conf

echo "Getting BusyBox ..."
#--------------------------------------------------------
if [ -f ../busybox-1.10.1-static.bz2 ] ; then
 cat ../busybox-1.10.1-static.bz2 | bunzip2 > initramfs/bin/busybox
else
 wget http://jootamam.net/initramfs-files/busybox-1.10.1-static.bz2 -O - | bunzip2 > initramfs/bin/busybox
fi

chmod +x initramfs/bin/busybox
ln -s busybox initramfs/bin/sh

echo "Creating a init script"
#--------------------------------------------------------
echo '#!/bin/sh

export PATH=/bin:/sbin

#Create all the symlinks to /bin/busybox
/bin/busybox --install -s

#Mount things needed by this script
mount -t proc proc /proc
mount -t sysfs sysfs /sys

touch /etc/mtab

#Disable kernel messages from popping onto the screen
echo 0 > /proc/sys/kernel/printk

#Clear the screen
clear

echo
echo
echo "------------------------------------"
echo "        **** USB Boot ****          "
echo "------------------------------------"
echo

#Create device nodes
mknod /dev/null c 1 3
mknod /dev/tty c 5 0

echo /bin/mdev > /proc/sys/kernel/hotplug

#Scan for devices
mdev -s

#Defaults
init="/sbin/init"
root="/dev/sda1"

#Get USB-disk SIGNATURE
USB_LABEL=
COMMAND_LINE=`cat /proc/cmdline`

MOUNT_OPTIONS="r"

#Parse 12 option parameters
#------------------------------------------------

for i in 1 2 3 4 5 6 7 8 9 10 11 12
do

 OPTION=`echo "$COMMAND_LINE" | cut -d" " -f$i`
 PARAM=`echo "$OPTION" | cut -d"=" -f1`
 VALUE=`echo "$OPTION" | cut -d"=" -f2`

 #Test ro|rw mount option
 case "$OPTION" in
  "ro" | "read-only")  MOUNT_OPTIONS="r";;
  "rw" | "read-write") MOUNT_OPTIONS="w";;
 esac

 if [ "a$PARAM" = "aUSB_DISK_SIGNATURE" ] ; then
  USB_LABEL=$VALUE
 fi
done

#Search for disk signature
#------------------------------------------------

if [ "a$USB_LABEL" != "a" ] ; then

 #Try to mount USB-disk
 echo -n "Searching disk signature: $USB_LABEL "

 n=0

 #Repeat test 10 times
 while [ $n -le 9 ]
 do
  #Rescan for new devices
  mdev -s

  export IFS=`echo -ne " \t\n"`
  export MOUNT_OPTIONS=$MOUNT_OPTIONS

  #Try to mount all sd devices
  #---------------------------------------------

  ls -1 /dev/sd* 2> /dev/null |
  while
   read TRY_DISK
   do
    mount -$MOUNT_OPTIONS $TRY_DISK /newroot 1> /dev/null 2> /dev/null
    if [ -f /newroot/etc/$USB_LABEL ] ; then
     break
    fi
    umount $TRY_DISK 2> /dev/null
  done
  #---------------------------------------------

  if [ -f /newroot/etc/$USB_LABEL ] ; then
   break
  fi

  sleep 1
  let n=$n+1
  echo -n "."
 done

 echo " done."

 IS_ROOT_MOUNTED=`mount | grep /newroot`

 if [ "a$IS_ROOT_MOUNTED" != "a" ] ; then
  echo "$USB_LABEL --> $IS_ROOT_MOUNTED"
 else
  echo "Error: disk signature <<$USB_LABEL>> not found !!!"
 fi

else
  echo "Warning: USB_DISK_SIGNATURE not in command line ..."

fi

#If nothing mounted
#------------------------------------------------

if [ "a$IS_ROOT_MOUNTED" = "a" ] ; then
 echo "Error: root device not mounted ..."
 echo -n "give me another device to try (ex: /dev/sda1) : "
 read ALT_DEVICE

 mount -$MOUNT_OPTIONS $ALT_DEVICE /newroot 1> /dev/null 2> /dev/null
fi


#Check if $init exists and is executable
#------------------------------------------------

if [[ -x "/newroot/${init}" ]] ; then
 #Unmount all other mounts so that the ram used by
 #the initramfs can be cleared after switch_root
 umount /sys /proc

 #Switch to the new root and execute init
 exec switch_root /newroot "${init}"
fi

#This will only be run if the exec above failed
echo "Failed to switch_root, dropping to a shell"
exec sh' > initramfs/init

chmod +x initramfs/init

echo "Creating the .cpio and .igz ..."
#--------------------------------------------------------
cd initramfs
find . | cpio -H newc -o > ../ramusb.cpio
cd ..
cat ramusb.cpio | gzip > ramusb.igz

echo "Done."
(Ex: si ricopia il testo in Makeramusb, poi chmod 755 Makeramusb, quindi ./Makeramusb da user)

2) copiamo la "ramusb.igz" così creata nella /boot del nostro disco USB ... per le mie prove è /dev/sdc4, formattato ext3, montato in /mnt/sdc4

3) editiamo lilo.conf ... esempio:

Codice: Seleziona tutto

# LILO configuration file sample, by Fabio

# Start LILO global section

boot = /dev/sdc   # hda,sda=MBR or hda1,sda1=bootrecord

compact        # ha sempre funzionato
prompt
large-memory   # non servirebbe in questo caso
timeout = 50
vga = 788

# End LILO global section

# Linux bootable partition config begins

image = /boot/linux-2.6.24.3
  label = UZBlinux
  initrd=/boot/ramusb.igz
  read-only
  append = "USB_DISK_SIGNATURE=mySlack12.2"

# Linux bootable partition config ends
Notare: non esiste la voce "root=" ... non serve ... ah, non distanziare il segno "=" da "USB_DISK_SIGNATURE=..."

4) editiamo fstab

Codice: Seleziona tutto

/dev/root / auto defaults 1 1
Sì, esattamente, basta questa linea ... un bel vantaggio

5) creiamo il "signature" file in /etc della USB

Codice: Seleziona tutto

touch /mnt/sdc4/etc/mySlack12.2
6) installiamo Lilo

Codice: Seleziona tutto

lilo -r /mnt/sdc4
Funziona perfettamente anche con la 12.2 con tempi di avvio (da Lilo a Login grafico) inferiori ad 1 minuto anche su 1800MHz/256RAM ... piccolo problemino, come si vede da lilo.conf:
neanche il vmlinuz-huge-smp-2.6.27.7-smp (4.5M) riconosce i dischi USB ... io uso una "custom" (ho usato il 2.6.24.3 perché mi supportava meglio PC non nuovissimi) che non arriva a 3,5M e riconosce tutto (provato sia con HD esterni che con pennine di marca diversa) ... acc... anche questo è un porting di Slackware !

Tra l'altro, visto che il "persistent-net" in un sistema che gira su più macchine è solo un problema, ho eliminato ifrename:

Codice: Seleziona tutto

echo "" > /etc/udev/rules.d/70-persistent-net.rules
mv /sbin/ifrename /sbin/no-ifrename
Da notare:
- Lilo qui è installato in /dev/sdc
- per voi potrebbe essere anche /dev/sdf
- ma poi si avvierà una volta come /dev/sda
- ed un'altra come /dev/sdd

nessun problema ! ... si avvierà e funzionerà sempre allo stesso modo !

Nota2 per Lilo:
talvolta la compilazione/riparazione di Lilo dall'esterno del filesystem (lilo -r /mount_point) da dei problemi ... si rimedia ricopiando i propri devices nel filesystem da riparare:

Codice: Seleziona tutto

mv /mount_point/dev /mount_point/old-dev
cd /
cp -Rpdf dev /mount_point/
Nota3:
per installare Slackware sulla chiavetta, basta clonare una Slackware già esistente, ma non montata (avviando da altra partizione o da DVD), esempio:

Codice: Seleziona tutto

mount /dev/sda3 /mnt/slacky
mount /dev/sdb1 /mnt/usbpen
cd /mnt/slacky
cp -Rpdf * /mnt/usbpen
Bene, sono certo che questo spunto vi può dare grandi soddisfazioni ... tutto è perfettibile ovviamente ... ogni contributo è il benvenuto.
vorrei riavere le mie firme ...

Avatar utente
percoco2000
Linux 3.x
Linux 3.x
Messaggi: 632
Iscritto il: gio 15 lug 2004, 0:00
Slackware: 12.2
Kernel: 2.6.27
Desktop: mate - fluxbox
Distribuzione: mint 13 / slackware
Località: Salerno

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da percoco2000 »

Giusto una curiosita, cosa bisogna mettere built-in nel kernel per il riconoscimento dei dischi usb?

Driver usb, mass-storage, filesystems e poi?

Avatar utente
zoros
Linux 4.x
Linux 4.x
Messaggi: 1361
Iscritto il: lun 28 mag 2007, 22:51
Nome Cognome: Fabio`Zorba`
Slackware: 14.1
Kernel: 3.10.30-smp
Desktop: KDE-3.5(works!)
Località: Gorizia
Contatta:

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da zoros »

percoco2000 ha scritto:Giusto una curiosita, cosa bisogna mettere built-in nel kernel per il riconoscimento dei dischi usb?

Driver usb, mass-storage, filesystems e poi?
Mah, mi sembra sia sufficiente ... io ho messo statici anche i vari modelli elencati ... beh, ovvio ...

volevo allegare un .config zippato di esempio in questo post, ma vedo che non mi è permesso ... o non ho trovato il "bottone" ... caso mai lo metto come code ...
vorrei riavere le mie firme ...

Avatar utente
zoros
Linux 4.x
Linux 4.x
Messaggi: 1361
Iscritto il: lun 28 mag 2007, 22:51
Nome Cognome: Fabio`Zorba`
Slackware: 14.1
Kernel: 3.10.30-smp
Desktop: KDE-3.5(works!)
Località: Gorizia
Contatta:

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da zoros »

Vedo poca attività intorno a questo argomento ... forse non interessava molto ... comunque, a scanso di equivoci, aggiungo ancora qualcosa:

nel titolo si parla di "disco USB", intendendo "Hard Disk USB" ... chiaramente i tempi di scrittura delle "pennine USB" non possono offrire certe prestazioni, però vi stò scrivendo da una Slack che gira su una pennina da 16G, il filesystem occupa 8.5G (quasi due ore per copiarlo !), parte direttamente in read-write e sembra "usabile" anche sotto KDE ...

ci si accorge di essere su una pennina solo copiando file di una certa dimensione e alla chiusura di qualche applicativo ...

considerando gli 8G, che si usa una ext3 (che scrive di continuo sul disco), e che almeno la /tmp potrebbe passare in RAM, mi sembra che con qualche accorgimento si possa rendere il tutto abbastanza soddisfacente anche su pennina ...

mi chiedo invece quanto durerà il chip della memoria, visti i continui cicli di scrittura ... sicuramente meglio usare ext2 in questo caso ... qualche idea in più ?
vorrei riavere le mie firme ...

Avatar utente
zoros
Linux 4.x
Linux 4.x
Messaggi: 1361
Iscritto il: lun 28 mag 2007, 22:51
Nome Cognome: Fabio`Zorba`
Slackware: 14.1
Kernel: 3.10.30-smp
Desktop: KDE-3.5(works!)
Località: Gorizia
Contatta:

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da zoros »

Ancora qualche info in merito all'oggetto:

1) nella busybox (v.1.4.2) contenuta nel DVD di Slackware mancano diversi applet (ad esempio mount) quindi, per usare gli originali Slackware, nella ramdisk si devono copiare anche diversi programmini esterni a busybox ...

2) i vari BIOS usano procedure diverse per l'avvio da USB ... in particolare risulta abbastanza "subdolo" il comportamento di alcune schede madri che per la voce "USB-HDD boot" non avviano il MBR, come ci si può aspettare, ma il Boot-Sector della prima partizione (quello "pseudo-fisico" riportato dal BIOS) senza neanche leggere la tabella delle partizioni ... questo impedisce di avviare la seconda, terza, ecc. partizione (quindi i vari Grub, Lilo, Isolinux non hanno colpa) ... si risolve inserendo nel boot-sector della prima partizione (es: FAT32) un piccolo codice che avvii il MBR (dove è installato Lilo ad esempio) ... Con questo accorgimento è quindi possibile avere un prima partizione compatibile M$ ed una seconda avviabile Linux.

3) per ext3, nel momento in cui viene montata rw, viene eseguito il recovery journal (come in fsck.ext3 senza -f) ... lavorando su una pennina con fs da 8G ci si accorge di questo (sono decine di secondi) ... montando in ext2 e passando /tmp in RAM, la risposta del sistema è decisamente migliorata ... l'impressione è che, con pochi accorgimenti, si possa far girare la 12.2 da pennina senza stravolgere il sistema ... su macchine recenti si potrebbe riportare la /home in RAM e sincronizzarla sulla pennina al poweroff ...

Bene, basta così ... ho usato Slacky un po' come un blog (mi scuso) ... comunque queste info potrebbero essere utili a qualcuno ...
vorrei riavere le mie firme ...

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da Mario Vanoni »

zoros ha scritto:Vedo poca attività intorno a questo argomento ... forse non interessava molto ... comunque, a scanso di equivoci, aggiungo ancora qualcosa:

nel titolo si parla di "disco USB", intendendo "Hard Disk USB" ... chiaramente i tempi di scrittura delle "pennine USB" non possono offrire certe prestazioni, però vi stò scrivendo da una Slack che gira su una pennina da 16G, il filesystem occupa 8.5G (quasi due ore per copiarlo !), parte direttamente in read-write e sembra "usabile" anche sotto KDE ...

ci si accorge di essere su una pennina solo copiando file di una certa dimensione e alla chiusura di qualche applicativo ...

considerando gli 8G, che si usa una ext3 (che scrive di continuo sul disco), e che almeno la /tmp potrebbe passare in RAM, mi sembra che con qualche accorgimento si possa rendere il tutto abbastanza soddisfacente anche su pennina ...

mi chiedo invece quanto durerà il chip della memoria, visti i continui cicli di scrittura ... sicuramente meglio usare ext2 in questo caso ... qualche idea in più ?
Domanda:

Come hai formattato lo stick USB (in italiano pennina)?

Da fabbrica originali hanno fino a 4 partizioni M$ o 3 M$ + 1 non M$,
ogni volta subito cambiate con fdisk(8) a partizione unica Linux (83).

Ne ho una ventina, formattati tutti con
mkfs.ext2 -b 4096 -i 4096 -c -c -m 0
le 32GB durano una vita a formattare, ma sono tutti affidabili,
da 512BM a 1G, 2GB, 4GB, 8GB, 16G e le ultime tre 32GB.

Avatar utente
zoros
Linux 4.x
Linux 4.x
Messaggi: 1361
Iscritto il: lun 28 mag 2007, 22:51
Nome Cognome: Fabio`Zorba`
Slackware: 14.1
Kernel: 3.10.30-smp
Desktop: KDE-3.5(works!)
Località: Gorizia
Contatta:

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da zoros »

Mario Vanoni ha scritto: Domanda:

Come hai formattato lo stick USB (in italiano pennina)?

Da fabbrica originali hanno fino a 4 partizioni M$ o 3 M$ + 1 non M$,
ogni volta subito cambiate con fdisk(8) a partizione unica Linux (83).

Ne ho una ventina, formattati tutti con
mkfs.ext2 -b 4096 -i 4096 -c -c -m 0
le 32GB durano una vita a formattare, ma sono tutti affidabili,
da 512BM a 1G, 2GB, 4GB, 8GB, 16G e le ultime tre 32GB.
Mah, intanto non sono così ben fornito di hw (avrai speso una fortuna in pennine) ... venendo al dunque:

ho solo una pennina da 16G, molte altre più piccole ... mai trovato pennine già di fabbrica con più partizioni ...

ho creato le partizioni con fdisk e le ho formattate (frettolosamente) con mkfs.ext3, utilizzando quindi i parametri di default contenuti in /etc/mke2fs.conf:

Codice: Seleziona tutto

[defaults]
	base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
	blocksize = 4096
	inode_size = 256
	inode_ratio = 16384

[fs_types]
	ext3 = {
		features = has_journal
	}
	ext4 = {
		features = has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
		inode_size = 256
	}
	ext4dev = {
		features = has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
		inode_size = 256
		options = test_fs=1
	}
	small = {
		blocksize = 1024
		inode_size = 128
		inode_ratio = 4096
	}
	floppy = {
		blocksize = 1024
		inode_size = 128
		inode_ratio = 8192
	}
	news = {
		inode_ratio = 4096
	}
	largefile = {
		inode_ratio = 1048576
		blocksize = -1
	}
	largefile4 = {
		inode_ratio = 4194304
		blocksize = -1
	}
	hurd = {
	     blocksize = 4096
	     inode_size = 128
	}
quindi dovrei avere come differenza inode_size=256, mentre tu hai usato 4096 (se ho capito, nel man "-i bytes-per-inode") ... secondo te cosa conviene?

Ho visto in diversi post che fai un'uso intensivo delle pennine per il backup ... ho quindi una conferma che sono affidabili, grazie ... comunque se è vero che le memorie non sopportano più di 1M cicli di scrittura forse è il caso di non farci girare sopra un sistema che scrive continuamente sul disco, meglio adottare qualche acorgimento tipo ramdisk ...
vorrei riavere le mie firme ...

Avatar utente
slucky
Iper Master
Iper Master
Messaggi: 2419
Iscritto il: mar 1 mag 2007, 15:30
Slackware: 14.2
Desktop: xfce4

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da slucky »

Vedo poca attività intorno a questo argomento ... forse non interessava molto ...
no, no...anzi zoros hai fatto una guida molto interessante e veramente utile, ti invito a metterla nella sezione wikislacky e risulterebbe d'aiuto a tutti quegli utenti che incontrano delle difficoltà :)

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da Mario Vanoni »

zoros ha scritto: Ho visto in diversi post che fai un'uso intensivo delle pennine per il backup ... ho quindi una conferma che sono affidabili, grazie ... comunque se è vero che le memorie non sopportano più di 1M cicli di scrittura forse è il caso di non farci girare sopra un sistema che scrive continuamente sul disco, meglio adottare qualche acorgimento tipo ramdisk ...
[OT]
scrivere è difficile ... e leggere ancora di più ...
Un mio vecchio amico informatico diceva sempre:
Leggere e` questione di fortuna.
[/OT]

- su USB stick sono sconsigliati i journaled file systems
> perche' abusano delle 1000 volte usabili per scriverci

- ad ogni nuova Slakware riformatto il primo HD,
> PJV con ext2 mette blocchi ed inode a 4096.

- avendo salvato giornalmente su USB stick
> _tutto_ quello che mi serve per ricostruire i sistemi ...

- calcolando la loro vita, tra un anno li compro nuovi!
> E SBATTO IN PATTUMIERA QUELLI VECCHI!
> Fidarsi e` bene, ma credere alla pubblicita` ...
> solo il formattarli quanti cicli ha gia` consumato?

- Non e` pessimismo, ma 10 anni di garanzia servono
> quando tutti i dati sono andati persi dopo due anni?

Avatar utente
zoros
Linux 4.x
Linux 4.x
Messaggi: 1361
Iscritto il: lun 28 mag 2007, 22:51
Nome Cognome: Fabio`Zorba`
Slackware: 14.1
Kernel: 3.10.30-smp
Desktop: KDE-3.5(works!)
Località: Gorizia
Contatta:

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da zoros »

slucky ha scritto: no, no...anzi zoros hai fatto una guida molto interessante e veramente utile, ti invito a metterla nella sezione wikislacky e risulterebbe d'aiuto a tutti quegli utenti che incontrano delle difficoltà :)
Ti ringrazio ... sì, si potrebbe fare un articolo ... ma forse è meglio che rimanga semplicemente un argomento di discussione, magari per avere qualche riscontro da altri ... a me interessava scambiare qualche idea, qualche info che possa essere utile per capire e risolvere anche altre situazioni ... da quanto si vede in giro problemi con il boot sono abbastanza frequenti in tutte le distribuzioni e nel caso di boot via USB ancora di più, visto che la cosa non è per niente standard ...

@Mario
ho capito, adotti la tecnica della manutenzione programmata come fanno le imprese sostituendo l'hw a scadenza regolare ... è sicuramente un approccio valido, "costosetto" però per un privato ...

se PJV usa sempre "-i 4096" allora sarà il caso di fare delle prove in tal senso ...

FZ
vorrei riavere le mie firme ...

Avatar utente
zoros
Linux 4.x
Linux 4.x
Messaggi: 1361
Iscritto il: lun 28 mag 2007, 22:51
Nome Cognome: Fabio`Zorba`
Slackware: 14.1
Kernel: 3.10.30-smp
Desktop: KDE-3.5(works!)
Località: Gorizia
Contatta:

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da zoros »

Bene, completiamo questa specie di monologo con le ultime indicazioni ...
ho modificato init della ramdisk in modo che monti ext2 e non ext3, rimosso /tmp, rinominato /home in /home-usb e /root in /root-usb, creata /ramdisk ... creati dei link simbolici ... più o meno così:

Codice: Seleziona tutto

cd /
mv root root-usb
mv home home-usb
rm -Rf tmp
mkdir /ramdisk
ln -sf /ramdisk/tmp  tmp
ln -sf /ramdisk/home-usb home
ln -sf /ramdisk/root-usb root
cioè le directory più usate girano in RAM ...

a questo punto all'inizio di /etc/rc.d/rc.S si ricopiano (sincronizzano) queste directory da USB-Stick a RAM:

Codice: Seleziona tutto

mount -t tmpfs none /ramdisk

mkdir -p   /ramdisk/tmp
mkdir -p   /ramdisk/root-usb
mkdir -p   /ramdisk/home-usb
chmod 4777 /ramdisk/tmp

echoc "Syncing USB-Disk to /ramdisk/root ... wait please ..." magenta
rsync -arz --delete --force /root-usb/ /ramdisk/root-usb

echoc "Syncing USB-Disk to /ramdisk/home ... wait please ..." yellow
rsync -arz --delete --force /home-usb/ /ramdisk/home-usb
e verso la fine di /etc/rc.d/rc.6 le modifiche in RAM vengono ricopiate (sincronizzate) sulla USB-Stick:

Codice: Seleziona tutto

echoc "Syncing /ramdisk/root to USB-Disk ... wait please ..." magenta
rsync -arz --delete --force /ramdisk/root-usb/ /root-usb

echoc "Syncing /ramdisk/home to USB-Disk ... wait please ..." yellow
rsync -arz --delete --force /ramdisk/home-usb/ /home-usb
Sembra funzionare, la Slackware su pennina senza grandi modifiche ... anche se sempre modifiche sono ...
vorrei riavere le mie firme ...

Avatar utente
Luci0
Staff
Staff
Messaggi: 3591
Iscritto il: lun 27 giu 2005, 0:00
Nome Cognome: Gabriele Santanché
Slackware: 12.2 14.0
Kernel: 2.6.27.46- gen 3.2.29
Desktop: KDE 3.5.10 Xfce
Località: Forte dei Marmi
Contatta:

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da Luci0 »

Ciao zoros questo argomento é molto interessante ... appena posso faccio qualche test !

Avatar utente
zoros
Linux 4.x
Linux 4.x
Messaggi: 1361
Iscritto il: lun 28 mag 2007, 22:51
Nome Cognome: Fabio`Zorba`
Slackware: 14.1
Kernel: 3.10.30-smp
Desktop: KDE-3.5(works!)
Località: Gorizia
Contatta:

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da zoros »

Luci0 ha scritto:Ciao zoros questo argomento é molto interessante ... appena posso faccio qualche test !
ok, grazie ... intanto ho messo in RAM anche /var/tmp /var/run e /var/log (dimenticavo quanti programmi ci scrivono sopra) ... Slack su pennina va sempre di più ...
vorrei riavere le mie firme ...

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da Mario Vanoni »

zoros ha scritto: @Mario
ho capito, adotti la tecnica della manutenzione programmata come fanno le imprese sostituendo l'hw a scadenza regolare ... è sicuramente un approccio valido, "costosetto" però per un privato ...
[OT]
USB stick VERBATIM 512MB
- usato forse 100 volte
- riformatato con mkfs.ext + e2fsck, no errors
- scriverci 459MB non nello stesso ordine, cancellare tutto
- dopo circa 2000 cicli raggiunti 397MB "no space left"
- riformatato con mkfs.ext + e2fsck, no errors
- stessa procedura, durera` 4-5 giorni, aspettiamo ...
[/OT]

Avatar utente
tigerwalk
Linux 3.x
Linux 3.x
Messaggi: 893
Iscritto il: lun 25 feb 2008, 22:08
Nome Cognome: Giuliano della Vecchia
Slackware: 13.37-14.2
Kernel: 3.10.17-tiger / 4.4.88-smp
Desktop: kde4/xfce4
Località: Napoli

Re: Makeramusb: avviare da disco USB con kernel statico

Messaggio da tigerwalk »

zoros ha scritto:
Luci0 ha scritto:Ciao zoros questo argomento é molto interessante ... appena posso faccio qualche test !
ok, grazie ... intanto ho messo in RAM anche /var/tmp /var/run e /var/log (dimenticavo quanti programmi ci scrivono sopra) ... Slack su pennina va sempre di più ...
Salve zoros, come sempre interessantissimi i tuoi spunti!
Appena ho un po' di tempo provo a mettere su una pennina da 8 GB una versione ridotta della current!

Rispondi