Deplacement d'un ensemble de fichier sur clé usb

Sachant que durant le boot on me propose un shell en root pour essayer de faire de la maintenance et qu’un fsck xxxx passe :confused: et j’arrive meme a les monter

:119

L’option defaults fait l’affaire.

Tu montes quoi ? Les escaliers, l’armoire en kit, /usr ?
Je crois comprendre que tu montes /mnt/usb1 qui contient /usr ou /var.
Hypothèse : ça fonctionne au remontage grâce à /mnt/usb1 qui est déjà monté.

L’ordre a son importance. Si le système doit récupérer son /usr ou son /var en /mnt/usb1, il faudrait que ce dernier soit monté avant.
Les montages ont lieu dans l’ordre de /etc/fstab.
/usr ou /var est il mentionné avant ou après /mnt/usb1 en fstab ?

$ cat /etc/fstab

Je monte /mnt/usb1 qui contien /usr /var et /home

PS : je dois faire /sbin/fsck et non fsck, a quoi cela est-il du ?

N’hésite pas à nous copier le retour brut des commandes. Ce ne sera que plus clair, moins sujet à interprétations hasardeuses voire erronées…
Tu montes donc /mnt/usb1 qui contient /usr /var et /home.
Deux temps : d’abord /mnt/usb1, puis /usr /var et /home.

Commençons dans l’ordre par /mnt/usb1.
Comment se monte-t-il selon /etc/fstab ?
$ cat /etc/fstab
Est-il monté ?
$ df -hT
Que contient-il ? Y a-t-il matière à fournir /home /usr /var clairement séparés ?
$ ls -la /mnt/usb1

Poursuivons par /usr, /home, /var.
Les points de montage /home,/var,/usr à la racine y sont-ils ? (+nature)
$ ls -l /
Contenu de /usr, /var,/home.
$ ls -l /usr

On avisera pour la suite selon les retours.

$ whereis fsck

fsck: /sbin/fsck.hfsplus /sbin/fsck.vfat /sbin/fsck.ext4dev /sbin/fsck.ext2 /sbin/fsck.nfs /sbin/fsck.hfs /sbin/fsck.minix /sbin/fsck.ext3 /sbin/fsck.jfs /sbin/fsck.cramfs /sbin/fsck.ext4 /sbin/fsck.msdos /sbin/fsck /sbin/fsck.xfs /sbin/fsck.reiserfs /sbin/fsck.btrfs /usr/share/man/man8/fsck.8.gz
fsck se trouve en /sbin.
( Ne pas s’inquiéter de ne pas avoir fsck.hfplus, fsck.jfs … comme l’exemple. Ce ne sont que des fsck spécialisés optionnels)

Que /sbin soit pris en compte ou pas dépend de la variable appelée $PATH (ang. path : chemin). On appelle variable des valeurs changeantes (voir aussi /var comme varier, variant, variable).
Dans le cas de $PATH, on peut le faire varier, le régler à sa convenance. Par défaut, il est différent chez root (#) et les utilisateurs ($).
Comparer $PATH chez root (#) et chez l’utilisateur ($)

$ echo $PATH

echo $PATH

ou
$ env

env

/sbin fait partie du $PATH de root.
Root peut commander # fsck sans préciser le chemin /sbin/fsck

/sbin ne fait pas partie du $PATH de l’utilisateur.
L’utilisateur ne peut pas commander $ fsck. /sbin ne fait pas partie de son $PATH, de son chemin. La commande fsck lui est introuvable. De plus, le simple utilisateur n’aurait pas la permission de décider du sort d’un système de fichiers sur un périphérique. Ce droit est réservé à root.

Ok pour y voir plus clair :

le fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda1 during installation
UUID=0ef1715c-afd4-45b0-a162-5d5244544bb3 /               ext2    errors=remount-ro 0       1
# /home was on /dev/sda2 during installation
# TO REMOVE !
#UUID=34e4f683-adf4-417d-98ac-41d3763f0a6c /home           ext2    defaults        0       2

# default sdb1 command
# /dev/sdb1       /media/cdrom0   udf,iso9660 user,noauto     0       0


# USB storage device
#/dev/sdb1 	/mnt/usb1	auto	defaults	0	0
#UUID="8ba11d23-cd50-a7c0-f42a-c4561f5793fc"	/mnt/usb1	ext2	defaults	0	2
LABEL=HERCULE_USB	/mnt/usb1	ext2	defaults	0	2

Les 3 lignes en dessous de USB storage device correspondent à ma clé usb et ne fonctionnent dans aucun cas, que le pass soit a 0 ou 2

Le fdsik

[code]Disk /dev/sda: 2004 MB, 2004516864 bytes
255 heads, 63 sectors/track, 243 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000aaab4

Device Boot Start End Blocks Id System
/dev/sda1 * 1 183 1466368 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 183 244 489472 83 Linux
Partition 2 does not end on cylinder boundary.

Disk /dev/sdb: 8166 MB, 8166703104 bytes
224 heads, 63 sectors/track, 1130 cylinders
Units = cylinders of 14112 * 512 = 7225344 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc3072e18

Device Boot Start End Blocks Id System
/dev/sdb1 1 1131 7975268 83 Linux

Disk /dev/sdc: 8004 MB, 8004304896 bytes
35 heads, 21 sectors/track, 21269 cylinders
Units = cylinders of 735 * 512 = 376320 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3043ab1f

Device Boot Start End Blocks Id System
/dev/sdc1 * 1 21270 7816688 b W95 FAT32[/code]
(/dev/sdc1 etait une clé usb pour recuperer le log)

le ls -al /

total 208 drwxr-xr-x 18 root root 4096 15 oct. 20:01 . drwxr-xr-x 18 root root 4096 15 oct. 20:01 .. drwxr-xr-x 2 root root 4096 15 nov. 2011 bin drwxr-xr-x 3 root root 4096 10 nov. 2011 boot drwxr-xr-x 14 root root 2900 18 oct. 19:59 dev drwxr-xr-x 68 root root 4096 18 oct. 20:01 etc lrwxrwxrwx 1 root root 14 15 oct. 19:59 home -> /mnt/usb1/home lrwxrwxrwx 1 root root 28 10 nov. 2011 initrd.img -> boot/initrd.img-2.6.32-5-686 lrwxrwxrwx 1 root root 28 10 nov. 2011 initrd.img.old -> boot/initrd.img-2.6.32-5-486 drwxr-xr-x 12 root root 4096 10 mars 2012 lib drwx------ 2 root root 16384 10 nov. 2011 lost+found drwxr-xr-x 4 root root 4096 10 nov. 2011 media drwxr-xr-x 7 root root 4096 18 oct. 19:31 mnt drwxr-xr-x 2 root root 4096 14 oct. 2011 opt dr-xr-xr-x 85 root root 0 18 oct. 19:59 proc drwx------ 5 root root 4096 10 oct. 18:23 root drwxr-xr-x 2 root root 4096 22 nov. 2011 sbin drwxr-xr-x 2 root root 4096 21 juil. 2010 selinux drwxr-xr-x 2 root root 4096 14 oct. 2011 srv drwxr-xr-x 12 root root 0 18 oct. 19:59 sys -rw-r--r-- 1 root root 133818 6 déc. 2012 t drwxrwxrwt 2 root root 4096 18 oct. 20:00 tmp lrwxrwxrwx 1 root root 13 15 oct. 20:00 usr -> /mnt/usb1/usr lrwxrwxrwx 1 root root 13 15 oct. 20:01 var -> /mnt/usb1/var lrwxrwxrwx 1 root root 25 10 nov. 2011 vmlinuz -> boot/vmlinuz-2.6.32-5-686 lrwxrwxrwx 1 root root 25 10 nov. 2011 vmlinuz.old -> boot/vmlinuz-2.6.32-5-486 lrwxrwxrwx 1 root root 13 15 oct. 20:00 /usr -> /mnt/usb1/usr

ls -al /usr/

total 56 drwxrwxr-x 11 root root 4096 15 oct. 14:02 . drwxrwxrwx 6 root root 4096 17 oct. 19:04 .. drwxrwxr-x 2 root root 12288 15 oct. 13:50 bin drwxrwxr-x 2 root root 4096 15 oct. 13:50 games drwxrwxr-x 34 root root 4096 15 oct. 13:51 include drwxrwxr-x 51 root root 8192 15 oct. 13:53 lib drwxrwxr-x 3 root root 4096 15 oct. 14:02 lib64 drwxrwxr-x 10 root root 4096 15 oct. 13:50 local drwxrwxr-x 2 root root 4096 15 oct. 13:53 sbin drwxrwxr-x 92 root root 4096 15 oct. 14:00 share drwxrwxr-x 4 root root 4096 15 oct. 14:01 src

ls -al /var/

total 52 drwxrwxr-x 13 root root 4096 15 oct. 14:06 . drwxrwxrwx 6 root root 4096 17 oct. 19:04 .. drwxrwxr-x 2 root root 4096 15 oct. 14:05 backups drwxrwxr-x 8 root root 4096 15 oct. 14:05 cache drwxrwxr-x 28 root root 4096 15 oct. 14:06 lib drwxrwxr-x 2 root root 4096 15 oct. 14:05 local drwxrwxr-x 2 root root 4096 18 oct. 19:59 lock drwxrwxr-x 7 root root 4096 18 oct. 19:59 log drwxrwxr-x 2 root root 4096 15 oct. 14:06 mail drwxrwxr-x 2 root root 4096 15 oct. 14:05 opt drwxrwxr-x 4 root root 4096 18 oct. 19:59 run drwxrwxr-x 4 root root 4096 15 oct. 14:05 spool drwxrwxr-x 2 root root 4096 15 oct. 14:05 tmp

Comme je le disais, les dossiers /usr /home et /var sont en fait des liens symboliques vers une clé usb, qui elle est (supposé) monté au démarrage.

Je précise que faire un mount -a pendant la phase de maintenance après que le fcsk ait planté marche et me permet de continuer “presque” normalement

Par ailleurs, il s’agit d’un robot avec un utilisateur unique (root) qui est uniquement utilisé pour controler un robot et que meme si ce n’est pas top niveau sécurité, nous n’avons jamais vraiment eu de probleme :confused: (les programmes sont de plus enregistrés sur un serveur sur internet)

PS :

df -hT grosso modo dit que

/dev/sda1 est de type ext2 et que j’utilise 30% de 1.4Go (386Mo)
/dev/sdb1 est de type ext2 et que j’utilise 14% de 7.5Go (990Mo)

Tout m’a l’air d’être en place sauf l’énigme du montage entravé et de l’échec de fsck.
Je ne m’explique pas pourquoi fsck et le montage # mount -a se bouclent dans le shell root alors qu’ils échouent quelques instants auparavant dans le démarrage routinier. Serait-ce dû à l’usb demandant un court laps pour se fixer ? No lo sé.

Suggestions :

pour contourner le fsck d’ext2 sur la clé

  • adopter le système de fichiers xfs qui ne cherchera pas de noises avec fsck.
    fsck.xfs, une formalité. Nous pourrions dire une fiction, une blague.

$ man fsck.xfs

[code] NAME
fsck.xfs - do nothing, successfully

SYNOPSIS
fsck.xfs [ filesys … ]

DESCRIPTION
fsck.xfs is called by the generic Linux fsck(8) program at startup to
check and repair an XFS filesystem. XFS is a journaling filesystem
and performs recovery at mount(8) time if necessary, so fsck.xfs sim‐
ply exits with a zero exit status.
[/code]

  • adopter le plus moderne ext4 avec des options de montage minimisant les écritures.
  • essayer avec un autre support usb.
    De nos jours, les supports usb sont remplaçables à un faible coût. Une clé usb n’est pas éternelle. On peut facilement substituer un périphérique usb en panne. Quitte à froisser les sensibilités des plus écolos || radins d’entre nous, avouons que l’argument de choisir ext2 afin d’éviter l’usure ne pèse pas lourd sur nos épaules …

Non, pas de guillemets.

Il faut:

où xxx est l’uuid de la partition à mounter.

=============
Donc, une fois la clef connectée :

=============
Si l’UUID de la partition que tu veux mounter est :
8ba11d23-cd50-a7c0-f42a-c4561f5793fc
et si le dossier “/mnt/usb1” existe bien,
il faut que tu remplace (dans “/etc/fstab”) la ligne :

#UUID=“8ba11d23-cd50-a7c0-f42a-c4561f5793fc” /mnt/usb1 ext2 defaults 0 2

par :

Et il faut aussi que la dernière ligne du fichier “/etc/fstab” soit terminée par un “retour chariot” (touche “entrée”),
donc après “…0 2” tu appuie sur la touche “entrée”, tu enregistre le fichier et tu démarre ensuite toujours avec la clef connectée.

@micP : c’est pas le probleme

@etxeberrizahar : je vais tester plus tard

:confused:

Je crois que je viens de remarquer le probleme

le fsck me dit fail PUIS je recois des message de type

Serait ce possible que le problème vienne de là ?
(du type detection des disks et de l’usb en parrallele au bootage)

derniere nouvelle :

FSCK dit fail
me demande de me loger en root (maintenance) OU de passer (crtl+D)
le systeme continue

puis quand je lance une session TOUT est monté correctement

:confused:

Est-il possible de modifier les scripts de demarrage pour “ralentir” le boot ou le fsck ? Et quel script modifier avec quelle commande ?