/home a disparu

Bonjour tout le monde,

j’ai un problème un peu complexe puisque j’administre a distance l’ordi de mes parents. Depuis ce matin, celui-ci ne boot plus. Au moment du fsck, il ne trouve pas un disque. Avec un Ctrl+D, ils peuvent continuer. Ca boot, mais le /home n’est pas monté donc il ne peuvent pas utiliser leur machine.

Si je me log par ssh (possible), je vois que la racine est montee:

gribouille:/# mount
/dev/hda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
none on /proc/bus/usb type usbfs (rw)

et que le disque hda est bien vu dans dmesg et dans /proc/partitions:

/$ dmesg | grep hda
Kernel command line: root=/dev/hda1 ro
hda: HDS722540VLAT20, ATA DISK drive
hda: max request size: 512KiB
hda: 80418240 sectors (41174 MB) w/1794KiB Cache, CHS=16383/255/63
hda: cache flushes supported
 hda: hda1 hda2 < hda5 hda6 >
EXT3 FS on hda1, internal journal

/$ cat /proc/partitions
major minor  #blocks  name

   3     0   40209120 hda
   3     1   19535008 hda1
   3     2          1 hda2
   3     5   19687626 hda5
   3     6     979933 hda6

Par contre, il n’est pas dans /dev/ et ni fdisk -l, ni parted -l, ni sfdisk -l ne le trouve !!

gribouille:/# ls /dev/hda*
ls: impossible d'acc�der � /dev/hda*: Aucun fichier ou dossier de ce type
gribouille:/# fdisk -l
gribouille:/# sfdisk -l
gribouille:/# parted -l

Or leur home est dans hda5, d’ou le probleme… Je comprends pas trop comment la partition hda1 peut bootee et ne pas etre trouve par tout le reste, mais cela ne traduit que mon ignorance des arcanes du noyau :laughing:

Une idée de ce que je peux faire ? Pour info, il n’y a pas eu d’upgrade ou de changement de noyau ou quoi que ce soit.

Merci d’avance !

Alb

montre nous ton /etc/fstab
Y trouve tu des UUID ou des /dev/

Ton ls /dev/hda* qui retourne une erreur me parait bizarre car ta racine est bien sur le hda1 …

as tu essayé un

ou un montage manuel ?
Le disque/partition est peut étre plein, ou corrompu (secteur défectueu)

[quote=“Mimoza”]montre nous ton /etc/fstab
Y trouve tu des UUID ou des /dev/

Ton ls /dev/hda* qui retourne une erreur me parait bizarre car ta racine est bien sur le hda1 …[/quote]

Bonjour,

voilà le /etc/fstab:

gribouille:/# cat /etc/fstab
# /etc/fstab: static file system information.
# <file system> <mount point>   <type>  <options>               <dump>  <pass>
/dev/hda1       /               ext3    errors=remount-ro       0       1
/dev/hda6       none            swap    sw                      0       0
proc            /proc           proc    defaults                0       0
/dev/fd0        /floppy         auto    user,noauto             0       0
/dev/hdc        /dvd            iso9660 ro,user,noauto,gid=24   0       0
/dev/hda5       /home   ext3    defaults                        0       2
none            /proc/bus/usb   usbfs
/dev/sda1       /mnt/usbkey     vfat    user,noauto,gid=6,uid=1000,umask=005    0       0

/dev/sda1       /mnt/sda1       ext2    user,noauto,gid=6,uid=1000,umask=005    0       0
/dev/sda2       /mnt/sda2       ext2    user,noauto,gid=6,uid=1000,umask=005    0       0
/dev/sda3       /mnt/sda3       ext2    user,noauto,gid=6,uid=1000,umask=005    0       0
/dev/sda4       /mnt/sda4       ext2    user,noauto,gid=6,uid=1000,umask=005    0       0

Il n’y a pas eu de MAJ ou réinstallation depuis un bout de temps, donc pas encore de UUID="…".
Quand à l’étrange retour de mon ls /dev/hda*, je suis bien d’accord…

A+

Julien

[quote=“piratebab”]as tu essayé un

ou un montage manuel ?
Le disque/partition est peut étre plein, ou corrompu (secteur défectueu)[/quote]

Bonjour,

le montage est impossible:

gribouille:/# mount -a
mount: périphérique spécial /dev/hda5 n'existe pas

C’est ca que je trouve fou: s’il a pu monté /dev/hda1, pourquoi il ne veut pas faire de meme pour /dev/hda5 ? Je pense aussi a un pb de disque corrompu, mais vu que le disque n’apparait pas dans /dev/, je ne peux pas lancer fsck…

A+

Alb

L’argument root=??? glissé à grub pourrait expliquer la réussite du montage.
Inspecter /boot/grub/menu.list (grub legacy).

La racine ne serait-elle pas pleine à ras-bords empêchant le “peuplement” de /dev ?
$ df -ha

/dev est un tmpfs (système de fichiers en mémoire virtuelle) monté par udev, donc pas de lien avec un éventuel remplissage de la racine. Mais je suis d’accord sur l’hypothèse que l’absence des fichiers spéciaux /dev/hda* soit la cause des problèmes constatés. En les recréant à la main, ça devrait repartir… jusqu’au redémarrage suivant. La question est donc : pourquoi ne sont-ils pas créés par udev ? Quelque chose dans les logs du noyau ou d’udev ?

Salut,

AMA c’est qu’il ne faut pas faire control + d mais se logger et lancer un fsck sur hda5 qui ne s’est pas fermé correctement la dernière fois.

Fais toi lire par les parents la totalité des messages à l’écran. Il va te dire quelle sont la ou les partitions pas propres :slightly_smiling:

Pour faire de la place en urgence sur la partition racine: apt-get clean (c’est du vécu …)
ensuite il faut tailler à la hache dans /var/log

Par hasard, n’y aurait il pas eu un changement un le disque vu comme /dev/sd… quelque chose?

Réponse: non, car le dmesg est clair là dessus.

Donc ça coince sur udev. 2 solutions

  1. udev ne se lance pas ou bloque. Curieux mais envisageable/

  2. pbm de driver disque: le disque est vu donc non

  3. Il manque le chargement des modules sd_mod ainsi que ext3 ou équivalent. Voir dans le syslog les soucis correspondants.

  1. Avec un noyau Debian standard, les pilotes IDE sont en modules, donc il faut udev pour les charger. Et comme tu dis, ils sont actifs puisque le disque et ses partitions sont vus par le noyau comme en témoignent dmesg et /proc/partitions.

  2. D’accord avec toi.

  3. Les pilotes IDE n’ont pas besoin des modules SCSI, contrairement aux pilotes ATA (qui nomment les disques sd*). Le pilote ext3 est bien actif puisque la racine est montée en ext3. De toute façon la reconnaissance des partitions est indépendante de la gestion des systèmes de fichiers.

J’ai déjà vu un cas particulier qui peut faire “disparaître” une partition : c’est en conjonction avec le RAID logiciel (mdadm). Mais il me semble que la partition est aussi supprimée dans /proc/partitions, pas seulement dans /dev/. Et de toute façon le disque ne disparaît pas.

Rebonjour tout le monde et merci de vous intéresser à ma maladie orpheline :slightly_smiling:

Quelques réponses:

1/ la racine n’est pas pleine

2/ je doute que ce soit un pb de module ou de noyau puisque ça marchait très bien et qu’à ma connaissance, il n’y a pas eu de modification logicielle de quoi que ce soit

3/ la suggestion de ggoodluck47 me plaisait bien et correspond a ce que je pense (un pb disque). Problème: si au démarrage ma mère tappe e2fsck /dev/hda5, il y a un pb de superblock. Le logiciel suggère de tenter e2fsck -b 8193 /dev/hda5, ca ne marche toujours pas. Par ailleurs, meme a ce stade fdisk -l ne donne rien

4/ les logs d’udev sont introuvables :slightly_smiling: Il faut que je change udev_log=“err” vers “debug” dans /etc/udev/udev.conf, non ? Sinon, j’ai regarde les autres fichiers de log (syslog, kern.log, messages, etc…) et ne voit rien d’evident

En gros ce qui m’embete c’est que vu que je n’ai rien dans /dev/, je suis relativement impuissant pour aller voir precisement ce qu’a le disque. Y a moyen de construire a la main le /dev/hda5 a partir d’information qu’on trouverait ailleurs ? Parce que dans /proc/ide il semble y avoir tout plein de choses.

A+

Alb

Le message de fsck est trompeur, il affiche cela même si le périphérique indiqué n’existe pas. Le superbloc n’a évidemment rien à voir dans l’histoire.

Oui tu peux recréer les /dev/hd* manuellement :

[quote]mknod /dev/hda b 3 0
mknod /dev/hda1 b 3 1
mknod /dev/hda5 b 3 5
mknod /dev/hda6 b 3 6[/quote]
Les propriétaires et permissions ne seront pas forcément les bonnes mais tu devrais retrouver quelque chose qui ressemble à ça :

# ls -l /dev/hda* brw-rw---- 1 root disk 3, 0 Sep 21 13:50 /dev/hda brw-rw---- 1 root disk 3, 1 Mar 14 2002 /dev/hda1 brw-rw---- 1 root disk 3, 5 Mar 14 2002 /dev/hda5 brw-rw---- 1 root disk 3, 6 Mar 14 2002 /dev/hda6
Comme /dev/ est un tmpfs, cela ne sera que temporaire jusqu’au prochain démarrage.

Bon,

alors j’ai pu creer les devices avec mknod (le man page n’aide pas beaucoup, si vous avez un lien vers plus de doc ca m’interesse !). J’ai ensuite lance fsck sur hda5:

gribouille:/# e2fsck /dev/hda5
e2fsck 1.41.12 (17-May-2010)
/dev/hda5 a été monté 200 fois sans avoir été vérifié, vérification forcée.
Passe 1 : vérification des i-noeuds, des blocs et des tailles
Passe 2 : vérification de la structure des répertoires
Passe 3 : vérification de la connectivité des répertoires
Passe 4 : vérification des compteurs de référence
Passe 5 : vérification de l'information du sommaire de groupe
/dev/hda5 : 22401/2464320 fichiers (23.8% non contigus), 1766415/4921906 blocs

gribouille:/# e2fsck /dev/hda5
e2fsck 1.41.12 (17-May-2010)
/dev/hda5 : propre, 22401/2464320 fichiers, 1766415/4921906 blocs

et j’ai ensuite pu le monter sans probleme !?

Par contre si je reboot, rebelotte…

Alb

C’est bien ce qu’on disait : tout est ok sur le disque, c’est juste les fichiers /dev/hda* qui manquent.
Par curiosité, il y a du monde dans /dev ? Le lecteur optique y est (si la machine en a un) ?

oui, /dev/hdc est bien la. Avec tout plein d’autre choses (cf ci-dessous). Par contre les /dev/hda* ne sont presents que parce que je les ai crée.

[size=55]

gribouille:/# ls /dev/
agpgart             psaux  ptybc  ptydb  ptypa  ptyr9  ptyt8  ptyv7  ptyx6  ptyz5    tty2   tty48  ttyaa  ttyc9  ttye8  ttyq7  ttys6  ttyu5  ttyw4  ttyy3    usbdev1.1
block               ptmx   ptybd  ptydc  ptypb  ptyra  ptyt9  ptyv8  ptyx7  ptyz6    tty20  tty49  ttyab  ttyca  ttye9  ttyq8  ttys7  ttyu6  ttyw5  ttyy4    usbdev1.1_ep00
bus                 pts    ptybe  ptydd  ptypc  ptyrb  ptyta  ptyv9  ptyx8  ptyz7    tty21  tty5   ttyac  ttycb  ttyea  ttyq9  ttys8  ttyu7  ttyw6  ttyy5    usbdev1.1_ep81
char                ptya0  ptybf  ptyde  ptypd  ptyrc  ptytb  ptyva  ptyx9  ptyz8    tty22  tty50  ttyad  ttycc  ttyeb  ttyqa  ttys9  ttyu8  ttyw7  ttyy6    usbdev1.2
console             ptya1  ptyc0  ptydf  ptype  ptyrd  ptytc  ptyvb  ptyxa  ptyz9    tty23  tty51  ttyae  ttycd  ttyec  ttyqb  ttysa  ttyu9  ttyw8  ttyy7    usbdev1.2_ep00
core                ptya2  ptyc1  ptye0  ptypf  ptyre  ptytd  ptyvc  ptyxb  ptyza    tty24  tty52  ttyaf  ttyce  ttyed  ttyqc  ttysb  ttyua  ttyw9  ttyy8    usbdev1.2_ep81
cpu_dma_latency     ptya3  ptyc2  ptye1  ptyq0  ptyrf  ptyte  ptyvd  ptyxc  ptyzb    tty25  tty53  ttyb0  ttycf  ttyee  ttyqd  ttysc  ttyub  ttywa  ttyy9    usbdev1.3
disk                ptya4  ptyc3  ptye2  ptyq1  ptys0  ptytf  ptyve  ptyxd  ptyzc    tty26  tty54  ttyb1  ttyd0  ttyef  ttyqe  ttysd  ttyuc  ttywb  ttyya    usbdev1.3_ep00
dri                 ptya5  ptyc4  ptye3  ptyq2  ptys1  ptyu0  ptyvf  ptyxe  ptyzd    tty27  tty55  ttyb2  ttyd1  ttyp0  ttyqf  ttyse  ttyud  ttywc  ttyyb    usbdev1.3_ep01
fd                  ptya6  ptyc5  ptye4  ptyq3  ptys2  ptyu1  ptyw0  ptyxf  ptyze    tty28  tty56  ttyb3  ttyd2  ttyp1  ttyr0  ttysf  ttyue  ttywd  ttyyc    usbdev1.3_ep81
full                ptya7  ptyc6  ptye5  ptyq4  ptys3  ptyu2  ptyw1  ptyy0  ptyzf    tty29  tty57  ttyb4  ttyd3  ttyp2  ttyr1  ttyt0  ttyuf  ttywe  ttyyd    usbdev2.1
hda                 ptya8  ptyc7  ptye6  ptyq5  ptys4  ptyu3  ptyw2  ptyy1  random   tty3   tty58  ttyb5  ttyd4  ttyp3  ttyr2  ttyt1  ttyv0  ttywf  ttyye    usbdev2.1_ep00
hda1                ptya9  ptyc8  ptye7  ptyq6  ptys5  ptyu4  ptyw3  ptyy2  shm      tty30  tty59  ttyb6  ttyd5  ttyp4  ttyr3  ttyt2  ttyv1  ttyx0  ttyyf    usbdev2.1_ep81
hda5                ptyaa  ptyc9  ptye8  ptyq7  ptys6  ptyu5  ptyw4  ptyy3  snd      tty31  tty6   ttyb7  ttyd6  ttyp5  ttyr4  ttyt3  ttyv2  ttyx1  ttyz0    vcs
hda6                ptyab  ptyca  ptye9  ptyq8  ptys7  ptyu6  ptyw5  ptyy4  sndstat  tty32  tty60  ttyb8  ttyd7  ttyp6  ttyr5  ttyt4  ttyv3  ttyx2  ttyz1    vcs1
hdc                 ptyac  ptycb  ptyea  ptyq9  ptys8  ptyu7  ptyw6  ptyy5  stderr   tty33  tty61  ttyb9  ttyd8  ttyp7  ttyr6  ttyt5  ttyv4  ttyx3  ttyz2    vcs2
initctl             ptyad  ptycc  ptyeb  ptyqa  ptys9  ptyu8  ptyw7  ptyy6  stdin    tty34  tty62  ttyba  ttyd9  ttyp8  ttyr7  ttyt6  ttyv5  ttyx4  ttyz3    vcs3
input               ptyae  ptycd  ptyec  ptyqb  ptysa  ptyu9  ptyw8  ptyy7  stdout   tty35  tty63  ttybb  ttyda  ttyp9  ttyr8  ttyt7  ttyv6  ttyx5  ttyz4    vcs4
kmem                ptyaf  ptyce  ptyed  ptyqc  ptysb  ptyua  ptyw9  ptyy8  tty      tty36  tty7   ttybc  ttydb  ttypa  ttyr9  ttyt8  ttyv7  ttyx6  ttyz5    vcs5
kmsg                ptyb0  ptycf  ptyee  ptyqd  ptysc  ptyub  ptywa  ptyy9  tty0     tty37  tty8   ttybd  ttydc  ttypb  ttyra  ttyt9  ttyv8  ttyx7  ttyz6    vcs6
log                 ptyb1  ptyd0  ptyef  ptyqe  ptysd  ptyuc  ptywb  ptyya  tty1     tty38  tty9   ttybe  ttydd  ttypc  ttyrb  ttyta  ttyv9  ttyx8  ttyz7    vcs7
loop0               ptyb2  ptyd1  ptyp0  ptyqf  ptyse  ptyud  ptywc  ptyyb  tty10    tty39  ttya0  ttybf  ttyde  ttypd  ttyrc  ttytb  ttyva  ttyx9  ttyz8    vcsa
MAKEDEV             ptyb3  ptyd2  ptyp1  ptyr0  ptysf  ptyue  ptywd  ptyyc  tty11    tty4   ttya1  ttyc0  ttydf  ttype  ttyrd  ttytc  ttyvb  ttyxa  ttyz9    vcsa1
mapper              ptyb4  ptyd3  ptyp2  ptyr1  ptyt0  ptyuf  ptywe  ptyyd  tty12    tty40  ttya2  ttyc1  ttye0  ttypf  ttyre  ttytd  ttyvc  ttyxb  ttyza    vcsa2
mem                 ptyb5  ptyd4  ptyp3  ptyr2  ptyt1  ptyv0  ptywf  ptyye  tty13    tty41  ttya3  ttyc2  ttye1  ttyq0  ttyrf  ttyte  ttyvd  ttyxc  ttyzb    vcsa3
net                 ptyb6  ptyd5  ptyp4  ptyr3  ptyt2  ptyv1  ptyx0  ptyyf  tty14    tty42  ttya4  ttyc3  ttye2  ttyq1  ttys0  ttytf  ttyve  ttyxd  ttyzc    vcsa4
network_latency     ptyb7  ptyd6  ptyp5  ptyr4  ptyt3  ptyv2  ptyx1  ptyz0  tty15    tty43  ttya5  ttyc4  ttye3  ttyq2  ttys1  ttyu0  ttyvf  ttyxe  ttyzd    vcsa5
network_throughput  ptyb8  ptyd7  ptyp6  ptyr5  ptyt4  ptyv3  ptyx2  ptyz1  tty16    tty44  ttya6  ttyc5  ttye4  ttyq3  ttys2  ttyu1  ttyw0  ttyxf  ttyze    vcsa6
null                ptyb9  ptyd8  ptyp7  ptyr6  ptyt5  ptyv4  ptyx3  ptyz2  tty17    tty45  ttya7  ttyc6  ttye5  ttyq4  ttys3  ttyu2  ttyw1  ttyy0  ttyzf    vcsa7
port                ptyba  ptyd9  ptyp8  ptyr7  ptyt6  ptyv5  ptyx4  ptyz3  tty18    tty46  ttya8  ttyc7  ttye6  ttyq5  ttys4  ttyu3  ttyw2  ttyy1  urandom  xconsole
ppp                 ptybb  ptyda  ptyp9  ptyr8  ptyt7  ptyv6  ptyx5  ptyz4  tty19    tty47  ttya9  ttyc8  ttye7  ttyq6  ttys5  ttyu4  ttyw3  ttyy2  usb      zero

[/size]

Juste une petite remarque: par défaut, le disque est vérifié tout les 20 ou 30 montages, je ne sais plus exactement. Mais pas 200 fois comme indiqué.
As tu modifié quelque chose dans la config ?

Salut,

oui, c’est normal, j’ai change ca il y a un bail avec tune2fs pour mettre toutes les 200 fois.

a+

Alb

c’est le bordel dans ton /dev

je te file le mien bon evidament je ne sai pas s’il te faut supprimer quelque chose donc je laisse la main a ceux qui save.

audio    cpu_dma_latency  hpet     loop4    network_latency     pts     sda2      snd      tty10  tty19  tty27  tty35  tty43  tty51  tty6   ttyS1    vcs3   vcsa4
block    disk             initctl  loop5    network_throughput  random  sda5      sndstat  tty11  tty2   tty28  tty36  tty44  tty52  tty60  ttyS2    vcs4   vcsa5
bsg      dsp              input    loop6    null                rfkill  sda6      sr0      tty12  tty20  tty29  tty37  tty45  tty53  tty61  ttyS3    vcs5   vcsa6
bus      dvd              kmsg     loop7    nvidia0             root    sda7      stderr   tty13  tty21  tty3   tty38  tty46  tty54  tty62  uinput   vcs6   vcsa7
cdrom    dvdrw            log      MAKEDEV  nvidiactl           rtc     sda8      stdin    tty14  tty22  tty30  tty39  tty47  tty55  tty63  urandom  vcs7   vga_arbiter
cdrw     fd               loop0    mcelog   port                rtc0    sg0       stdout   tty15  tty23  tty31  tty4   tty48  tty56  tty7   v4l      vcsa   video0
char     full             loop1    mem      ppp                 scd0    sg1       tty      tty16  tty24  tty32  tty40  tty49  tty57  tty8   vcs      vcsa1  xconsole
console  fuse             loop2    mixer    psaux               sda     shm       tty0     tty17  tty25  tty33  tty41  tty5   tty58  tty9   vcs1     vcsa2  zero
core     hidraw0          loop3    net      ptmx                sda1    snapshot  tty1     tty18  tty26  tty34  tty42  tty50  tty59  ttyS0  vcs2     vcsa3

[quote=“Albounet”]oui, /dev/hdc est bien la. Avec tout plein d’autre choses (cf ci-dessous). Par contre les /dev/hda* ne sont presents que parce que je les ai crée.

[size=55]

gribouille:/# ls /dev/
[...]

[/size][/quote]
:open_mouth: C’est le boxon dans ton dev :119

Quelques qestions :
–Ton swap est Ok ? car il est sur le même dique suivant ton fstab
–Ton autre disque est OK ? celui en sda.
– Tu peut lire & écrire sur la racine ? Je vais peut être dire une connerie mais si ton disque est un peu vieux il se peut qu’il mette du temps a se “lancer”. Pour la racine il fait un deuxième essai de montage en lecture seul. Alors que ton hda5 s’il ne réussit pas à le monter il laisse tomber. Si c’est bien le cas une solution serais de mettre “rootdelay=10” dans la ligne de commande de Grub. Je dis ça mais … mais rien dit :whistle: