# creare una usbstick bootabile

## mrgamer

salve ragazzi... sto cercando di usare il famigerato catalyst per crearmi una chiavetta usb che mi faccia il boot, e con cui posso fare dei test sul mio pc  :Smile: 

alor...

come da manuale... ho fatto prima uno snapshot del portage, quindi ho creato un po di cartelle in /tmp/catalyst , ci ho schiaffato lo stage3 [ di gentoo 1.4 credo ] dentro e ho creato un file .spec

vi sparo prima il debug del catalyst e poi il file .spec che ho creato [ cosi se avete consigli.. me li date ^^ ]

catalyst stdout  :Smile: 

```

gamer root # catalyst -f x86-usbstick-20042703.spec 

Setting storedir to default value "/var/tmp/catalyst"

Setting portdir to default value "/usr/portage"

Setting distdir to config file value "/usr/portage/distfiles"

Setting options to config file value "pkgcache"

Setting sharedir to config file value "/usr/lib/catalyst"

Compiler cache support enabled.

Package cache support enabled.

Building natively for x86

Setting up directories...

Running command "rm -rf /var/tmp/catalyst/tmp/default-x86-1.0/livecd-stage1-x86-20042703"

Unpacking stage tarball...

Running command "tar xjpf /var/tmp/catalyst/builds/default-x86-

1.0/stage3-x86-20030910.tar.bz2 -C /var/tmp/catalyst/tmp/default-x86-

1.0/livecd-stage1-x86-20042703"

Unpacking portage tree snapshot...

Running command "tar xjpf /var/tmp/catalyst/snapshots/portage-20042703.tar.bz2

 -C /var/tmp/catalyst/tmp/default-x86-1.0/livecd-stage1-x86-20042703/usr"

Configuring profile link...

Running command "rm -f /var/tmp/catalyst/tmp/default-x86-1.0/livecd-

stage1-x86-20042703/etc/make.profile"

Running command "ln -sf ../usr/portage/profiles/default-x86-

1.0 /var/tmp/catalyst/tmp/default-x86-1.0/livecd-stage1-x86-

20042703/etc/make.profile"

Running command "cp /etc/resolv.conf /var/tmp/catalyst/tmp/default-x86-

1.0/livecd-stage1-x86-20042703/etc"

Running command "rm -f /var/tmp/catalyst/tmp/default-x86-1.0/livecd-

stage1-x86-20042703/etc/make.conf"

Running command "/bin/bash /usr/lib/catalyst/targets/livecd-

stage1/livecd-stage1.sh run 'sys-devel/gnuconfig' 'sys-devel/patch' 'sys-

devel/libtool' 'sys-libs/ncurses' 'sys-devel/gettext' 'sys-devel/m4' 'sys-

devel/bison' 'sys-apps/sed' 'sys-apps/texinfo' 'sys-libs/zlib' 'dev-

python/python-fchksum' 'app-arch/bzip2' 'sys-libs/db' 'sys-

apps/groff' 'sys-apps/cronbase' 'sys-apps/man' 'sys-libs/gdbm' 'sys-

devel/libperl' 'dev-lang/perl' 'sys-devel/autoconf' 'sys-

devel/automake' 'dev-perl/Locale-gettext' 'sys-apps/help2man' 'sys-

apps/coreutils' 'sys-apps/debianutils' 'app-shells/bash' 'sys-

libs/readline' 'dev-libs/openssl' 'dev-libs/expat' 'dev-lang/python' 'sys-

devel/gcc-config' 'sys-devel/binutils' 'sys-devel/gcc' 'sys-kernel/linux-

headers' 'sys-libs/glibc' 'sys-apps/gawk' 'sys-devel/flex' 'dev-

libs/glib' 'sys-apps/miscfiles' 'sys-libs/cracklib' 'sys-libs/pam' 'sys-

apps/shadow' 'sys-apps/pam-login' 'sys-apps/util-linux' 'sys-

apps/baselayout' 'sys-apps/module-init-tools' 'app-shells/sash' 'sys-

libs/slang' 'app-editors/nano' 'dev-util/yacc' 'net-misc/iputils' 'net-

misc/wget' 'sys-apps/diffutils' 'sys-fs/e2fsprogs' 'sys-apps/file' 'sys-

apps/grep' 'app-arch/gzip' 'sys-apps/hdparm' 'sys-apps/less' 'sys-

apps/man-pages' 'sys-apps/net-tools' 'app-arch/tar' 'sys-devel/make' 

'net-misc/openssh' 'sys-fs/devfsd'"

>>> Regenerating /etc/ld.so.cache...

Performing Global Updates: /usr/portage/profiles/updates/1Q-2003

(Could take a couple minutes if you have a lot of binary packages.)

  .='update pass'  *='binary update'  @='/var/db move'

..........................

Performing Global Updates: /usr/portage/profiles/updates/1Q-2004

(Could take a couple minutes if you have a lot of binary packages.)

  .='update pass'  *='binary update'  @='/var/db move'

...................portage: Update type "slotmove" not recognized.

.....................

Performing Global Updates: /usr/portage/profiles/updates/2Q-2003

(Could take a couple minutes if you have a lot of binary packages.)

  .='update pass'  *='binary update'  @='/var/db move'

.................................................................................

Performing Global Updates: /usr/portage/profiles/updates/2Q-2004

(Could take a couple minutes if you have a lot of binary packages.)

  .='update pass'  *='binary update'  @='/var/db move'

................

Performing Global Updates: /usr/portage/profiles/updates/3Q-2003

(Could take a couple minutes if you have a lot of binary packages.)

  .='update pass'  *='binary update'  @='/var/db move'

..............................................................................

..............................................................................

..............................................................................

.................................................@@........................

Performing Global Updates: /usr/portage/profiles/updates/4Q-2002

(Could take a couple minutes if you have a lot of binary packages.)

  .='update pass'  *='binary update'  @='/var/db move'

................................................................................

Performing Global Updates: /usr/portage/profiles/updates/4Q-2003

(Could take a couple minutes if you have a lot of binary packages.)

  .='update pass'  *='binary update'  @='/var/db move'

.................@..@.@..@..@............................................

!!! No profile directory; system mode unavailable.

catalyst: GRP build aborting due to error.

gamer root # 

```

file .spec

```

gamer root # cat x86-usbstick-20042703.spec 

subarch: x86

version_stamp: 20042703

target: livecd-stage1

rel_type: default

rel_version: 1.0

snapshot: 20042703

source_subpath: default-x86-1.0/stage3-x86-20030910

livecd/use: livecd -X -crypt -arts -gpm -svgalib -gtk -qt -kde -gnome -svga

livecd/packages: sys-devel/gnuconfig sys-devel/patch sys-devel/libtool 

sys-libs/ncurses sys-devel/gettext sys-devel/m4 sys-devel/bison sys-

apps/sed sys-apps/texinfo sys-libs/zlib dev-python/python-fchksum app-

arch/bzip2 sys-libs/db sys-apps/groff sys-apps/cronbase sys-apps/man 

sys-libs/gdbm sys-devel/libperl dev-lang/perl sys-devel/autoconf sys-

devel/automake dev-perl/Locale-gettext sys-apps/help2man sys-

apps/coreutils sys-apps/debianutils app-shells/bash sys-libs/readline dev-

libs/openssl dev-libs/expat dev-lang/python sys-devel/gcc-config sys-

devel/binutils sys-devel/gcc sys-kernel/linux-headers sys-libs/glibc sys-

apps/gawk sys-devel/flex dev-libs/glib sys-apps/miscfiles sys-

libs/cracklib sys-libs/pam sys-apps/shadow sys-apps/pam-login sys-

apps/util-linux sys-apps/baselayout sys-apps/module-init-tools app-

shells/sash sys-libs/slang app-editors/nano dev-util/yacc net-misc/iputils 

net-misc/wget sys-apps/diffutils sys-fs/e2fsprogs sys-apps/file sys-

apps/grep app-arch/gzip sys-apps/hdparm sys-apps/less sys-apps/man-

pages sys-apps/net-tools app-arch/tar sys-devel/make net-misc/openssh 

sys-fs/devfsd

gamer root # 

```

se ci riesco stilo un bell'howto  :Smile:  cmq uso una usbstick da 128mb, se avete consigli su qualche pacchetto che posso eliminare... parlate pure

ps: il man però vorrei mettercelo  :Smile:   :Smile: 

editShev: ho spezzato le linee lunghe per rendere più leggibile il topic. Cerchiamo di spezzarle quando possibile.

----------

## xchris

io sto facendo la stessa cosa in modo differente. (si lo so ... ormai si prova a far bootare anche il frigorifero con linux  :Smile:  )

Io non sto usando catalyst ma un metodo un po' + manuale e devo dire che pur essendo molto alfa (una sfilza di errori in fase di boot) la chiavetta funziona e mi restituisce un sistema per il recovery e soprattutto molto orientato alla rete. 

Tienimi aggiornato sugli sviluppi  :Smile: 

Vediamo i vantaggi dei 2 approcci.

Ti consiglio di zappare il manuale e /usr/share/doc... troppo spazio.

Preferisco aver spazio per una distro che mi consenta di avere ipv6,bridging,wireless,iptables,iproute2 per LARTC,ettercap per vedere cosa gira in rete,openssh,openvpn,nfs server/client/ , samba client...

che dire.... fa effetto!!  :Smile: 

A questo punto mi servirebbe l'autorizzazione di peach (non vorrei sbagliarmi ma e' lui il gimparo  :Smile:  ) per un bootsplash carino carino da includere. e magari anche un loghetto.

ciao

----------

## mrgamer

mmm azz nessuno sul forum sà darmi una mano? nessuno si è cimentato col famigerato catalyst ?

a me non serve un how-to su come fare  :Smile:  mi basta sapere quell'errore a cosa si riferisce !!!   :Rolling Eyes:   :Smile: 

ps: scusa shev... non mi ero reso conto della visualizzazione   :Shocked: 

----------

## mrgamer

ragazzi.. allora nella giornata di oggi ho fatto duri test..e alla fine qualcosa è uscito fuori  :Smile: 

per adesso ho un problema di kernel... infatti, ho installato tutto correttamente sulla usbstick... ho settato grub in modo da farmi partire /dev/sda1... ma c'è un problema!

vi pasto un pezzo di dmesg, per farvi render bene conto:

```

USB Mass Storage support registered.

drivers/usb/core/usb.c: registered new driver hid

drivers/usb/input/hid-core.c: v2.0:USB HID core driver

Bluetooth: HCI USB driver ver 2.5

drivers/usb/core/usb.c: registered new driver hci_usb

Advanced Linux Sound Architecture Driver Version 1.0.2c (Thu Feb 05 15:41:49 2004 UTC).

ALSA device list:

  #0: Sound Blaster Live! (rev.7) at 0x9800, irq 12

NET: Registered protocol family 2

IP: routing cache hash table of 4096 buckets, 32Kbytes

TCP: Hash tables configured (established 32768 bind 65536)

NET: Registered protocol family 1

NET: Registered protocol family 17

Bluetooth: L2CAP ver 2.1

Bluetooth: L2CAP socket layer initialized

Bluetooth: SCO (Voice Link) ver 0.3

Bluetooth: SCO socket layer initialized

Bluetooth: RFCOMM ver 1.2

Bluetooth: RFCOMM socket layer initialized

Bluetooth: RFCOMM TTY layer initialized

ACPI: (supports S0 S3 S4 S5)

```

bene, a questo punto mi esce fuori "Kernel panic: VFS: Unable to mount root fs" poiche lui prova a montare /dev/sda1.. ma il kernel ancora non ha fatto il detect dell'usbstick!!!  [ e quindi ancora non esiste il device /dev/sda ]

questo non è un problema molto semplice... non so.. come fate voi a farlo partire?

ps: se non mi avete capito.. reply please  :Very Happy: 

----------

## comio

la butto, ma di queste cose non se molto: potresti fare un ramdisk e poi chrootare sul disco usb

----------

## randomaze

 *comio wrote:*   

> la butto, ma di queste cose non se molto: potresti fare un ramdisk e poi chrootare sul disco usb

 

Si, credo che occorra usare il ramdisk e l'initrd.

My 2c: Dai un occhiata a come é fatta la MandrakeMove  :Wink: 

----------

## Tintenstich

....approposito di bootsplah e loghetto..........dové' che sono configurati??

Cioe'in qiale file?

----------

## fedeliallalinea

 *Tintenstich wrote:*   

> ....approposito di bootsplah e loghetto..........dové' che sono configurati??
> 
> Cioe'in qiale file?

 

Leggi qui la prossima volta apri un altro topic.

----------

## Tintenstich

...si ma e'questo il post in cui si parla di chiavetta USB bootabile.......

Vorrei farmela pure io , e vorrei sapere come modificare il bootsplash.....

In un altro post si parla di questo , tirando in ballo il kernel e grub , ma visto che e' una USB-key , che usa genkernel , e se non erro non usa grub, come si potrebbe fare?

----------

## xchris

mrgamer:

devi usare come ti hanno gia' detto initrd e ramdisk.

Volevo solo consigliarti di non usare una partizione linux nativa per installare tutto perche' altrimenti rimani a corto di spazio.

Io uso syslinux + gcloop (e' un immagine compressa di un filesystem ext2)

In questo modo la mia distro da 90 mb occupa 38Mb sulla chiavetta.

Unico problema che e' read-only... cmq risolvibile.

Se seguirai questa strada ti consiglio di studiarti il boot dei livecd.

Tintenstich:

se usi genkernel ti crea automaticamente tutto per bootsplash.

Unico problema e' che genkernel non ti fa lo script adatto per la usbkey se pensi di usare syslinux.

In genere l'img bootsplash e' appeso al file initrd. ( >> )

ciao

----------

## fedeliallalinea

 *Tintenstich wrote:*   

> In un altro post si parla di questo , tirando in ballo il kernel e grub , ma visto che e' una USB-key , che usa genkernel , e se non erro non usa grub, come si potrebbe fare?

 

Scusa e' che non si capiva bene. Ora mi e' tutto chiaro.

----------

## hardskinone

 *mrgamer wrote:*   

> 
> 
> bene, a questo punto mi esce fuori "Kernel panic: VFS: Unable to mount root fs" poiche lui prova a montare /dev/sda1.. ma il kernel ancora non ha fatto il detect dell'usbstick!!!  [ e quindi ancora non esiste il device /dev/sda ]
> 
> questo non è un problema molto semplice... non so.. come fate voi a farlo partire?
> ...

 

la sparo e mi eclisso: il supporto all'usb storage e' modulo oppure built in?

edit: https://forums.gentoo.org/viewtopic.php?t=46050&postdays=0&postorder=asc&highlight=catalyst&start=0

----------

## mrgamer

hardskinone: è built-in ovviamente  :Very Happy: 

mm ora mi studio questa faccenda del ramdisk && initrd

per xchris: io ho ideato un modo piu "favolistico" dell'uso del gcloop

in pratica boota su ext2 normale non compresso e poi monta le partizioni /usr/ & /var/ (che sono di ca 300mb NON compresse) come gcloop

un altra domanda per xchris: ho un problema con il mount di device gcloop, ho provato a seguire la guida, ma non riesco a montare il compressloop... mi potresti dire come fai ? e se si puo mettere nell'fstab ?

grazie  :Smile:   :Wink: 

----------

## mrgamer

mmm allora mi son documentato riguardo l'initrd, ho visto che viene eseguito il comando /linuxrc che sta dentro la rom di initrd... il fatto ora... è che non capisco cosa dovrebbe fare questo comando!

ci metto un "mount /dev/sda1 /" ???

ora provo, vi farò sapere  :Very Happy: 

----------

## xchris

preso da linuxrc

```

echo " " | losetup -E 19 -e ucl-0 -p0 /newroot/dev/loop0 /newroot/mnt/cdrom/${LOOP}

                if [ "$?" != "0" ]

                then

                        echo "FAILED TO losetup THE LOOP DEVICE"

                        /bin/ash

                fi

                mount -t ext2 -o ro /newroot/dev/loop0 /newroot/mnt/livecd

```

linuxrc di base fa le seguenti operazioni:

- rileva il root device (o almeno ci prova... e cmq accetta i parametri passati al kernel in fase di boot)

- crea una dir su cui girera' il nuovo sistema

- monta il device (/dev/cdrom o nel nostro caso /dev/sda1)

- monta gcloop

- crea i link necessari

- chroota sulla nuova dir ed esegue init

P.S: ho visto pure squashfs che sembra carino.

+ semplice da gestire... soprattutto se aggiungi files dopo averla creata

- compressa (di poco)

ciao

----------

## mrgamer

mi puoi pastare anche il tuo grub.conf  :Smile:  grazie ^^

----------

## xchris

sorry non uso grub  :Smile: 

uso syslinux!

ciao

----------

## xchris

ho trovato questo che potrebbe essere interessante

sys-apps/tinylogin

ciao

----------

## FonderiaDigitale

ho visto questo thread solo adesso... ci sono evoluzioni?

----------

## kaio

http://www.stixx.org/

----------

## mrgamer

sinceramente mi son rotto, e ho abbandonato il progetto  :Very Happy: 

non ho avuto tanto tempo da dedicarci

----------

## FonderiaDigitale

il mio intento e' diverso dal vostro: voglio usare la penna per bootare il portatile.

la penna e' la sola fonte da cui attingere la chiave di crittazione con cui e' crittato il filesystem.

il problema e' che il bios del portatile non boota da usb, per cui devo bootare grub , far partire una initrd che monti la chiavetta, chrooti dentro la chiave, prepari l'ambiente, e passi al sistema vero e proprio su hd.

senza la chiave e' virtualmente impossiible leggere il fs.

quando ho praticizzato il tutto posto i risultati  :Smile: 

----------

