Exemples d'utilisations de la distribution linux TOMSRTBT
Le premier démarrage
Voici quelques informations pour votre première utilisation:
- Il est possible de choisir un mode d'affichage différent
du mode par défaut pour afficher plus ou moins de lignes/de
colonnes.
Il suffit pour cela de taper sur Entree,
au moment où ce choix est proposé (30secondes) ou
d'appuyer sur la barre d'espace, pour
poursuivre plus rapidement le chargement avec la configuration par
défaut.
- En fin de boot, le choix du clavier est proposé.
Ne le manquez pas sous peine de vous retrouver avec un clavier
américain.
Vous avez 15 secondes pour réagir.
- Enfin, le login à saisir est root et le mot de passe xxxx
Clavier français
Si vous avez loupé le coche et que vous vous retrouvez en clavier qwerty:
Pour charger le clavier fr après le redémarrage, il
faut taper:
loadkmap < /lib/key/fr.map
On tape en fait (en clavier qwerty):
Si on a le pavé numérique: | loqdk,qp < /lib/key/fr.,qp |
Sinon: | loqdk,qp < !lib!key!fr:,qp |
ou même | loqdk,qp . !lib!key!fr:,qp |
Montages de ressources
Montages classiques:
Nous verrons plus loin des montages spécifiques aux distributions Tomsrtbt1.7.361 et Tomsrtbt2.0.103.
#Montage de la disquette TOMSRTBT:
Cette disquette est formattée en 1,722Mo.
Le périphérique est donc /dev/fd0u1722
mkdir /mnt/floppy mount /dev/fd0u1722 /mnt/floppy |
#Montage d'une disquette formattée M$do$
(1,44mo):
Le périphérique est /dev/fd0
ou /dev/fd0H1440
mkdir /mnt/floppy mount -t vfat /dev/fd0 /mnt/floppy |
#Montage d'une partition window$:
mkdir /mnt/win mount -t vfat /dev/hda1 /mnt/win |
#Montage d'une image ISO (non testé sous tomsrtbt):
mkdir /mnt/cdromiso mount -t iso9660 -o loop /chemin/nom_de_l_image.iso /mnt/cdromiso |
#Rappel sur la création de l'image ISO:
dd if=/dev/cdrom of=/chemin/nom_de_l_image.iso
Montage de périphériques USB:
La distribution Tomsrtbt2.0.103 est nécessaire (A VERIFIER).
Tomsrtbt2.0.103:
Il s'agit de la dernière version (à la date du 23.06.2002)
avec un noyau 2.2.20
Cette version apporte entre autres le support de l'USB et ainsi la
possibilité d'utiliser un lecteur ZIP USB.
Pour le reste, les usages sont assez proches de ceux indiqués
avec la version 1.7.361
Accès à un ZIP USB:
#Chargement des modules:
insmod usbcore.o insmod usb-uhci.o insmod usb-storage.o |
#Création du point de montage:
mkdir /mnt/zip
#Montage proprement dit:
mount -t vfat /dev/sda4 /mnt/zip
Remarque:
Certains modules à charger peuvent varier:
J'ai lu que selon les cartes mères, c'était
alternativement usb-uhci.o ou usb-ohci.o
Accès aux fichiers/photos sur une carte Smartmedia d'un appareil photo numérique Olympus C200Z via le port USB:
#Chargement des modules:
insmod usbcore.o insmod usb-uhci.o insmod usb-storage.o |
#Création du point de montage:
mkdir /mnt/appphotonum
#Remarque: le "device" est indiqué lors de l'execution
de insmod usb-storage.o
#Si le ZIP USB (ou parallèle d'ailleurs)
est encore branché, ce sera /dev/sdb1,
sinon /dev/sda1
mount -t vfat /dev/sdb1 /mnt/appphotonum
Copie non synchrone
Attention:
Lorsque l'on copie des fichiers vers une disquette (par exemple), la copie n'est pas
nécessairement effective immédiatement.
Vous pouvez néanmoins forcer la synchronisation des
écritures en attente à un instant T en tapant sync.
Si vous démontez la disquette par umount /mnt/floppy, la
synchronisation sera effectuée avant le démontage.
En revanche, si vous retirez la disquette sans la démonter, il
n'est pas impossible que les données que vous comptiez y
tranférer n'y soient pas.
Remarque:
Les distributions grand public montent généralement les périphériques avec l'option sync (voir /etc/fstab).
Un fdisk digne de ce nom
Qui n'a jamais pesté contre le FDISK de M$DO$?
Il m'est même arrivé de rencontrer des situations dans
lesquelles PartitionMagic ne parvenait pas
à remettre à plat un disque dur.
Un fdisk made in GNU/Linux
a réglé ce problème facilement.
Et c'était une distribution Tomsrtbt
pardi!
En effet, légère, portable, customisée à
souhait, l'indispensable outil a avoir sur soi, c'est tellement beau
qu'on dirait un objet de collection...
J'arrête là ma démonstration à la P.Bellemare.
Voir la page jointe pour l'utilisation du fdisk de Linux.
Sauvegarde et restauration d'une partition
Exemple:
Nous souhaitons sauvegarder la partition système d'un Window$.
Supposons que cette partition est en /dev/hda1
Supposons que nous disposons d'une partition /dev/hda2
de type ext2 (juste pour varier les types, mais vfat
conviendrait aussi (ext2 a tout de même l'avantage de ne pas
être visible depuis Window$, d'où la possibilité de
cacher/mettre la sauvegarde à l'abri d'un effacement intempestif)).
Pour la sauvegarde:
#Création du point de montage de la partition Window$:
mkdir /mnt/win
#Montage de la partition Window$:
mount -t vfat /dev/hda1 /mnt/win
#Création du point de montage de la partition Linux:
mkdir /mnt/linux
#Puis:
cd /
#Archivage du contenu de la partition Window$
vers la partition Linux (long):
tar -cvf /mnt/linux/sauvegarde.tar /mnt/win/*
#Tomsrtbt ne dispose pas d'un tar très complet et l'otpion z n'est pas
acceptée directement.
#Il est possible de gzipper (ou de bzip2er)
ensuite l'archive.
#Sauvegarde de la table de partitions (très
rapide):
dd if=/dev/hda of=/mnt/smb/parttable.bin
bs=512 count=1
#Sauvegarde du secteur de boot (très
rapide):
dd if=/dev/hda1 of=/mnt/smb/bootsector.bin
bs=512 count=1
Pour la restauration:
#Création du point de montage de la partition Window$:
mkdir /mnt/win
#Monter la partition Window$ au
même endroit que pour la sauvegarde:
mount -t vfat /dev/hda1 /mnt/win
#Se rendre à la racine:
cd /
#Désarchiver/restaurer:
tar -xvf /mnt/linux/sauvegarde.tar
Il est important que le montage de la partition Window$ soit fait au même endroit que
pour la sauvegarde, car la sauvegarde contient le chemin (/mnt/win/) vers lequel vont être
extraits les fichiers.
#La restauration du secteur de boot et de la table de partition
ne sont pas indispensables.
#Mais si vous voulez l'effectuer:
dd if=/mnt/smb/parttable.bin of=/dev/hda
bs=512 count=1 dd if=/mnt/smb/bootsector.bin of=/dev/hda1 bs=512 count=1 |
Montage de partages Window$/Samba:
Tomsrtbt1.7.361:
Il s'agit de la dernière version avec un noyau 2.0.39.
Avec cette version, le montage de partitions Window$
est assez simple.
Il faut que le réseau soit OK et que le fichier /etc/hosts soit renseigné.
Pour cela, il faut avoir identifié le pilote à
utiliser (une recherche sur Google avec le
nom de la carte réseau et "linux" pour critère de
recherche devrait vous permettre d'identifier le pilote
approprié).
Par exemple, avec une Dlink DFE530TX-Rev-A1,
c'est le pilote via-rhine.o (à récupérer dans les
add-ons)
Pour renseigner le fichier /etc/hosts:
Imaginons que le poste windaube fournit un
partage nommé public.
Imaginons de plus que son IP est 192.168.1.17
echo "192.168.1.17 windaube" >>
/etc/hosts
Supposons que vous avez recopié le pilote
nécessaire d'une disquette d'add-ons vers /tmp
Chargeons le pilote:
cd /tmp insmod via-rhine.o |
Prenons l'IP 192.168.1.100 et définissons une route vers le réseau 192.168.1.0:
ifconfig eth0 192.168.1.100 netmask
255.255.255.0 route add -net 192.168.1.0 |
Après cela on peut effectuer des ping.
ping 192.168.1.17 ping windaube |
Le réseau est configuré.
Il faut encore effectuer l'accès à la ressource.
Supposons que vous avez aussi copié le module smbfs.o (support des
partages Window$) et la commande smbmount
dans /tmp.
Chargeons le module apportant le support des partages Window$:
insmod smbfs.o
Créons le point de montage s'il n'existe pas:
mkdir /mnt/smb
Pour accéder à un partage window$
(partage qui doit exister et le poste serveur
doit être démarré
sous window$ ou Linux
avec samba configuré et démarré (si!si!)):
smbmount //windaube/public /mnt/smb
Un mot de passe est éventuellement demandé.
Valider simplement avec ENTREE s'il n'y a pas de mot de passe.
Pour accéder à un partage non public sur serveur samba (security user)
Avec la version en noyau 2.0.39 (Tomsrtbt1.7.361):
smbmount //nomserveur/nompartage /mnt/smb -U
username
Un mot de passe est demandé, le saisir et valider.
Démontage:
smbumount /mnt/smb
Tomsrtbt2.0.103:
La procédure a changé et j'ai rencontré des
soucis avec un certain nombre de cartes réseau pour
l'accès à des partages window$.
J'ai plusieurs fois échoué.
Cependant, il semble qu'on obtienne des erreurs, dont il ne faut pas
tenir compte (cela fonctionne
malgré tout... en principe (parce que bon...)).
#Avec la nouvelle version Tomsrtbt2.0.23:
#Il y a trois executables:
#smbmnt, smbmount
et smbumount et la syntaxe diffère
un peu.
#Le smbfs.o a aussi changé.
#Copie des programmes et pilotes vers /tmp:
cp ./* /tmp cd /tmp |
#Débzipage de ces fichiers:
bzip2 -d *.bz2
#Chargement du module de la carte réseau (via-rhine.o, rtl8139.o,...):
insmod via-rhine.o
#Re-Création du fichier /etc/networks
echo "loopback
127.0.0.0" >/etc/networks echo "eth0 192.168.1.0" >>/etc/networks |
#Paramétrage de la carte réseau
ifconfig eth0 192.168.1.100 netmask
255.255.255.0 up
#Définition des routes:
route add -net 192.168.1.0 route add default gw 192.168.1.1 |
#Chargement du module pour les systèmes de fichier Samba/window$:
insmod smbfs.o
#Création du point de montage:
mkdir /mnt/smb
#Création des liens nécessaires au bon
fonctionnement de smbmount:
#Lorsqu'on execute smbmount, il y a des
appels "internes" à smbmnt et ce
fichier doit-être dans le PATH
ln -s /tmp/smbmnt /usr/bin/smbmnt ln -s /tmp/smbmount /usr/bin/smbmount ln -s /tmp/smbumount /usr/bin/smbumount |
#Pour accéder à un partage:
smbmount //nom_du_serveur/nom_du_partage
/mnt/smb
Un mot de passe est demandé (même si aucun mot de passe
n'est nécessaire):
Le fournir et/ou valider avec Entrée.
#Pour éviter qu'un mot de passe soit demandé:
smbmount //nom_du_serveur/nom_du_partage
/mnt/smb -o guest
#Pour accéder à un serveur avec un couple
login/password sur un partage non public:
smbmount //nom_du_serveur/nom_du_partage
/mnt/smb -o username=monlogin,password=monpassword
#Ou
smbmount //nom_du_serveur/nom_du_partage
/mnt/smb -o username=monlogin
#Et le mot de passe est demandé après.
#Attention: La commande suivante ne
fonctionne pas avec tomsrtbt:
#mount -t smbfs //host /mountpoint -o options
Test SMB effectué avec Tomsrtbt2.0.103 (version
d'origine) le 25.02.2003:
mkdir /mnt/floppy
mkdir /mnt/smb
mount -t vfat /dev/fd0 /mnt/floppy
cp /mnt/floppy/new3/* /tmp
umount /mnt/floppy
ifconfig eth0 down ifconfig eth0 192.168.52.2 up
ping 192.168.52.182
echo "192.168.52.182 LeJoliServeur" >> /etc/hosts
bzip2 -d ./*.bz2
ln -s /tmp/smbmnt /usr/bin/smbmnt
ln -s /tmp/smbmount /usr/bin/smbmount
ln -s /tmp/smbumount /usr/bin/smbumount
smbmount //LeJoliServeur/public /mnt/smb
insmod smbfs.o
smbmount //LeJoliServeur/public /mnt/smb
ls /mnt/smb
Je ne sais plus si dans ce test, j'avais fait: insmod rtl8139.o
Mais sur un test ultérieur, cela me donnait Device busy et cela
a pourtant fonctionné.
Montage de partages NFS:
Taper ce que j'ai bricolé (et refaire les tests).
Clonage via tar et nc
-
nc -l -p 2005 | tar xf -
doit être lancé sur le client avanttar cf - /mnt/win | nc 192.168.52.3 2005
sur le serveur.
- Ce que j'ai fait aurait convenu pour deux postes identiques.
Mais là ce n'était pas le cas et j'ai bousillé le window$ du client (disons que j'ai un peu accéléré la dégénérescence naturelle de ce système;o).
En effet, en précisant /mnt/win dans la commande "tar cf - /mnt/win | nc 192.168.52.3 2005", j'ai inclus dans l'archive créée par tar un chemin absolu (/mnt/win), si bien que sur le client tout a été désarchivé dans le chemin /mnt/win (c'est-à-dire la partition window$ du client (ce qui aurait été parfait si j'avais souhaité cloner ces partitions)).
Je souhaitais seulement désarchiver dans un sous-dossier de /mnt/win sur le client pour controler que cela fonctionnait et contrôler/comprendre la syntaxe.
Quand je dis "bousiller", c'est exagéré:
Window$ a démarré mais m'a demandé à réinstaller tout plein de pilotes,...
Ca démarre, mais je n'ai pas eu le courage de tout remettre au propre et je doute que dans le cas de postes avec des matériels différents on parvienne ains i à quelque chose de propre.
Pour seulement transférer les données et qu'elles soient désarchivées dans /mnt/win/test_nc, il aurait fallu effectuer sur le serveur:
tar cf - mnt/win | nc 192.168.52.3 2005
sans le / devant mnt/win (auquel cas on obtient tout de même une arborscence /mnt/win/test_nc/mnt/win/*)
ou encore
tar cf - ./* | nc 192.168.52.3 2005
Ainsi, on envoye le contenu du dossier courant du serveur à savoir le contenu de /mnt/win sans chemin supplémentaire.
- Cette commande peut être améliorée de
plusieurs façons:
La première à mon gout, c'est qu'il est désagréable de ne pas voir ce qui se passe.
On peut donc rendre la commande tar un peu plus causante en ajoutant l'obtion v (pour verbeux).
"tar cvf ./* | nc 192.168.52.3 2005" sur le serveur et "nc -l -p 2005 | tar xvf -" sur le client.
On voit alors défiler des lignes de "a ./windows/system/xxx.dll" sur le serveur ("a" pour archiver) et "x ./windows/system/xxx.dll" sur le client ("x" pour extraire).
On constate ainsi que ce n'est pas bloqué.
- La documentation en allemand sur le Twiki de Tomsrtbt signale
des variantes pour alléger le trafic réseau.
Il s'agit de gzipper avant l'envoi:
Sur le serveur: tar cf - ./ | gzip -c | nc 192.168.52.3 2005
Sur le client: nc -l -p 2005 | gzip -d - | tar xf -
On peut ici aussi ajouter l'option v à tar pour savoir ce qui se passe.
Une solution pour le clonage via tar et nc (netcat) est signalée sur le Twiki de Tomsrtbt (en allemand, pour les amateurs... ou les polyglottes).
Je viens de faire quelques tests (avec
le temps cette formulation deviendra saugrenue).
Je vous les livre ici:
Comme je ne disposais pas de deux postes identiques lors des
tests, j'ai fait un premier essai comme suit:
Sur le client (le poste qui va recevoir les données (le contenu de la partition)):
# loadkmap < /lib/key/fr.map
# mkdir /mnt/floppy
# mount -t vfat /dev/fd0 /mnt/floppy
mount: block device /dev/fd0 is write-protected, mounting read-only
# cp /mnt/floppy/via-rhine.o.bz2 /tmp/
# cd /tmp
/tmp# bzip2 -d via-rhine.o.bz2
/tmp# insmod via-rhine.o
Using via-rhine.o
via-rhine.c:v1.08b-LK1.0.1 12/14/2000 Written by Donald Becker
http://www.scyld.com/network/via-rhine.html
eth0: VIA VT3043 Rhine at 0xe800, 00:50:ba:ce:78:28, IRQ 10.
eth0: MII PHY found at address 8, status 0x782d advertising 05e1 Link 45e1.
/tmp# ifconfig eth0 192.168.52.3
eth0: Setting full-duplex based on MII #8 link partner capability of 45e1.
/tmp# ping 192.168.52.182
PING 192.168.52.182 (192.168.52.182): 56 data bytes
64 bytes from 192.168.52.182: icmp_seq=0 ttl=64 time=0.7 ms
64 bytes from 192.168.52.182: icmp_seq=1 ttl=64 time=0.2 ms
--- 192.168.52.182 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.4/0.7 ms
/tmp# mkdir /mnt/win
/tmp# mount -t vfat /dev/hda1 /mnt/win
/tmp# mkdir /mnt/win/test_nc
/tmp# cd /mnt/win/test_nc
/mnt/win/test_nc/# nc -l -p 2005 | tar xf -
Tar: blocksize = 20
/mnt/win/test_nc/#
Voici le détail de ces commandes:
J'ai commencé par charger le clavier français (j'avais loupé le coche en fin de boot): |
loadkmap < /lib/key/fr.map |
J'ai créé un
point de montage pour une disquette (je
dois récupérer le pilote réseau pour ce client): |
mkdir /mnt/floppy |
J'ai monté la disquette
(après l'avoir
insérée dans le lecteur bien sûr): |
mount -t vfat /dev/fd0 /mnt/floppy |
J'ai copié le pilote
vers /tmp: |
cp /mnt/floppy/via-rhine.o.bz2 /tmp/ |
Je me suis rendu dans /tmp: |
cd /tmp |
J'ai débzippé ce
pilote: |
bzip2 -d via-rhine.o.bz2 |
Je l'ai ensuite chargé: |
insmod via-rhine.o |
J'ai attribué une IP à la machine: |
ifconfig eth0 192.168.52.3 |
J'ai contrôlé que je parvenais à pinger le serveur: |
ping 192.168.52.182 |
J'ai créé le point de montage pour la partition destination des données: |
mkdir /mnt/win |
J'ai monté cette partition: |
mount -t vfat /dev/hda1 /mnt/win |
Comme je souhaitais seulement
désarchiver dans un sous-dossier de la partition window$ du
client, j'ai créé un dossier pour accueillir les
données: |
mkdir /mnt/win/test_nc |
Je me suis rendu dans le
dossier: |
cd /mnt/win/test_nc |
Et j'ai mis le client à l'écoute des données lui parvenant sur le port 2005, et déarchivé ces données: |
nc -l -p 2005 | tar xf - |
Sur le serveur (le poste dont une partition est copiée à tra ver le réseau):
# dmesg | grep eth0
eth0: 3Com 3c905C Tornado at 0xec80, 00:08:74:e0:d1:9a, IRQ 11
eth0: Initial media type Autonegotiate.
eth0: MII #24 status 782d, link partner capability 45e1, setting full-duplex.
# ifconfig eth0 192.168.52.182 up
# ping 192.168.52.3
PING 192.168.52.3 (192.168.52.3): 56 data bytes
64 bytes from 192.168.52.3: icmp_seq=0 ttl=64 time=0.4 ms
64 bytes from 192.168.52.3: icmp_seq=1 ttl=64 time=0.1 ms
64 bytes from 192.168.52.3: icmp_seq=1 ttl=64 time=0.1 ms
--- 192.168.52.3 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.2/0.4 ms
# mkdir /mnt/win
# mount -t vfat /dev/hda1 /mnt/win
# cd /mnt/win
/mnt/win# tar cf - /mnt/win | nc 192.168.52.3 2005
#
Voici le détail de ces commandes:
J'ai contrôlé que
le pilote de la carte réseau est cette fois inclus par
défaut et qu'il n'y a donc pas à charger le pilote
après le démarrage: |
dmesg | grep eth0 |
J'ai attribué une IP
à la machine: |
ifconfig eth0 192.168.52.182 up |
J'ai contrôlé que
je parvenais à pinger le client: |
ping 192.168.52.3 |
J'ai créé le
point de montage pour la partition à copier: |
mkdir /mnt/win |
J'ai monté cette
partition: |
mount -t vfat /dev/hda1 /mnt/win |
Je me suis rendu dans le
dossier où est montée la partition (c'est inutile dans le cas où l'on veut dupliquer (lire le point 2. plus bas)): |
cd /mnt/win |
Et j'ai archivé le
contenu de /mnt/win et transmis vers le client sur le port 2005: (Lire impérativement le 2.) |
tar cf - /mnt/win | nc 192.168.52.3 2005 |
Attention:
Serveur HTTPD:
La disquette Tomsrtbt contient un petit serveur httpd.
J'ai booté sur ce qui va être le serveur avec la
disquette Tomsrtbt 2.0.103, puis:
mkdir /mnt/floppy
mount -t vfat /dev/fd0 /mnt/floppy
cp /mnt/floppy/via-rhine.o.bz2 /tmp/
cd /tmp
bzip2 -d via-rhine.o.bz2
insmod via-rhine.o
ifconfig eth0 192.168.52.3
echo "<html><body>Coucou</body></html>" >/tmp/index.html
echo coucou > /tmp/coucou.txt
httpd /tmp 8888
Après avoir configuré le réseau, j'ai créé une page html minimale dans /tmp et lancé le serveur httpd avec /tmp pour racine.
Côté client (sur une Mdk):
Avec un client en mode texte, j'ai pu consulter les pages index.html et coucou.txt:
[steph@DeepGlue steph]$ lynx http://192.168.52.3:8888/index.html
[steph@DeepGlue steph]$
[steph@DeepGlue steph]$ lynx -dump http://192.168.52.3:8888/coucou.txt
coucou
[steph@DeepGlue steph]$
Lynx et konqueror accèdent sans problème à
http://192.168.52.3:8888/index.html
Lynx accède à http://192.168.52.3:8888/coucou.txt en dump
et en mode consultation de page web, mais pas konqueror.
Remarque:
Sur le Twiki de Tomsrtbt, un utilisateur explique comment il a pu récupérer des données d'un système W$NT crashé.
Pour sauvegarder/récupérer:
tar cvf - /mnt/dossier_a_sauver | bzip2 -9 > /tmp/sauvegarde.bz2
ifconfig eth0 192.168.1.24 netmask 255.255.255.0 up
httpd /tmp 8888
Et récupérer depuis une autre machine:
lynx -dump http://192.168.1.24:8888/sauvegarde.bz2 >sauvegarde.bz2
Problème: /tmp
est un Ramdisk limité à environ 4Mo. Dans ces conditions
cela ne fait pas une solution de clonage.
Sommaire
Précédent: Création
de la disquette
Suivant: Personnalisation de
la disquette