Linux usb boot leger

Description

Le code permet de booter sur une clé USB ou une carte SD. L'avantage est que l'initramfs est très petit car il ne doit juste être accompagné d'un shell static au cas où (dash fait l'affaire). Le kernel doit avoir en interne les modules necessaires pour prendre en charge le type de partition, le scsi et l'usb mass storage. Il serait possible de les mettres en modules dans l'initramfs. Init doit être à la racine de l'initramfs

Pour booter, il utilise une option de la ligne de commande usb_root=SERIAL:PARTNO:TYPE. Le numero de serie de la clé USB ou de la carte SD peut-être trouvé par "cat /proc/scsi/usb-storage/N" !!! ce n'est pas le n° attribué par linux aux partitions.

!!! ce code est dangereux, il n'inclue pas les headers des sources linux. Il n'est pas compatible 64 bits. (structure dirent notament).

Conclusion :


Je l'ai codé car la seule clé USB que j'ai qui peut se locker mécaniquement est tellement vieille qu'elle ne contient que 256 Mo. Loger un Linux avec X11, compilo C/C++, naviguateur internet, media player et différentes libs et headers, c'est hyper chaud...

Il lance /bin/init au lieu de /sbin/init car mon dash etait dans /bin et que mon initramfs n'a que ce repertoire. Modifiez à volonté dans start(). Creez un lien init->dash ou renomer /bin/dash en /bin/init. Le programme lance la même ligne de commande que le boot ai réussi ou non. C'est pourquoi le dash de l'initramfs et l'init de la clé USB doivent pouvoir être lancés par la même ligne de commande.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.