-
-
-
-
-
- Tools
- Dev
- Bash
- Recherche web
-
Je me suis trouvé plusieurs fois dans la situation de devoir transférer des fichiers depuis un PC n'ayant plus d'affichage (par manque d'écran, panne de la carte graphique…) vers un autre ordinateur.
Lorsque l'on veut transformer rapidement un PC en serveur de fichiers SMB (CIFS), le live boot CD Trinity Rescue Kit créé par Tom Kerremans fait l'affaire sans effort. Ce live boot CD basé sur Mandriva 2005 se charge en mémoire en obtenant une adresse IP par requête DHCP, et affiche un menu simple qui permet à tout un chacun de démarrer un serveur SSH, de monter toutes les partitions et de démarrer un serveur Samba en partage public sans mot de passe. Malheureusement cela nécessite de sélectionner deux entrées différentes du menu, et la ré-initialisation du mot de passe root est exigée avant le démarrage du serveur SSH. Aussi, sous une émulation clavier QWERTY pour un clavier physique AZERTY, et sans affichage, toutes ces manipulations deviennent un peu hasardeuses…
C'est pourquoi j'ai patché l'image disque linux initiale afin d'ajouter les options de boot suivantes :
Échantillon de menu grub2 pour lancer Trinity Rescue Kit 3.4 build 372-2 :
## Note: for splash image, boot option gfxpayload=800x600 is not supported ## by prog /usr/bin/fbresolution. Use vga=788 instead. ## Init variable fs_opt_id to allow starting on any media support insmod extcmd probe -f -s fstype "($root)" if test "$fstype" == "iso9660"; then probe -l -s fs_opt_id "($root)" fs_opt_id="vollabel=$fs_opt_id" else probe -u -s fs_opt_id "($root)" fs_opt_id="voluuid=$fs_opt_id" fi unset fstype menuentry --class="trk" "TRK 3.4 build 372-2 - SCSI drivers, text menu, autoserver from RAM (256Mb min)" "$fs_opt_id" { set fs_opt_id="$2" echo "Loading linux kernel..." linux /kernel.trk ramdisk_size=65536 root=/dev/ram0 $fs_opt_id vga=788 splash=verbose pci=conf1 scsidrv trkinmem trkmenu rootpass=trk setkmap=fr setlocale=fr_FR.UTF-8 autoserver echo "Loading initial ramdisk..." initrd /initrd.trk } menuentry --class="trk" "TRK 3.4 build 372-2 - SCSI drivers, text menu, autoserver" "$fs_opt_id" { set fs_opt_id="$2" echo "Loading linux kernel..." linux /kernel.trk ramdisk_size=65536 root=/dev/ram0 $fs_opt_id vga=788 splash=verbose pci=conf1 scsidrv trkmenu rootpass=trk setkmap=fr setlocale=fr_FR.UTF-8 autoserver echo "Loading initial ramdisk..." initrd /initrd.trk }
Pour personnaliser le CD-ROM, j'ai ajouté en haut des menus Isolinux/Sylinux, une entrée exécutée par défaut après 5 secondes. Dans cette configuration, Trinity Rescue Kit monte toutes les partitions, démarre automatiquement les serveurs SMB (CIFS), SSH, FTP (et SFTP), et selon la version du CD, charge les pilotes SCSI (version c) et éjecte le CD-ROM (version b et c).
La version a n'éjecte pas le CD-ROM afin de pouvoir fonctionner sur les vieux PC qui possèdent moins de 512 Mo de RAM.
Toutes les entrées de menu configurent la locale et la disposition de clavier françaises et comportent l'option rootpass=trk (mot de passe par défaut) afin de pouvoir changer facilement celui-ci dans l'entrée de menu. J'ai également remonté le menu n°8 en deuxième position parce qu'il me semble avoir quelques similarités avec le menu n°1.
Enfin, j'ai écrit trois scripts bash à la racine du CD. Ces programmes s'exécutent correctement sous Debian 7 mais peuvent contenir quelques bugs mineurs. Les voici :
Trinity Rescue Kit build 372-2 (patched) est distribué sous licence libre GPL dans l'espoir que ce sera utile mais SANS AUCUNE GARANTIE.
Sur le CD, j'ai ajouté deux répertoires :
├── AUTORUN.INF ├── boot/ │ ├── grub/ │ └── mbr.syslinux.bin ├── boot.cat ├── bootlogo.jpg ├── changelog ├── disableautorun.exe ├── doc/ │ ├── official-trk-doc/ │ │ ├── trk-doc.html │ │ └── trk-doc-img/ │ ├── repacked-doc/ │ │ ├── scripts.changelog/ │ │ ├── howto-patch.txt │ │ ├── initrd.trk.changelog │ │ ├── initrd.trk-scripts.tar.gz │ │ ├── lisezmoi.txt │ │ ├── readme.txt │ │ └── trk-root-password.txt │ └── Trinity Rescue Kit website.URL ├── initrd.trk ├── initrd.trk.old ├── isolinux.bin ├── isolinux.cfg ├── kernel.trk ├── ldlinux.sys ├── make-trk-isolinux.sh ├── make-trk-syslinux.sh ├── make-trk-usbhd_grub.sh ├── memdisk ├── memtest.x86 ├── pxelinux.0 ├── pxelinux.cfg/ ├── syslinux.cfg ├── trinity.ico ├── trk3/ └── vesamenu.c32
Fichiers iso build #2a + #2b + #2c – 2016-01-07 02:04:29 +0100 :
Fichier iso build #2 – 2014-09-06 04:09:43 +0100 :