fsck

Dobry den,

ve fstab mam neco jako
/dev/hdd7 /home ext3 defaults 1 2

Cas od casu pri zapinani (domaci pocitac, ktery vypinam) spousti kontrolu disku, coz trva dlouho.
Potreboval bych nejaky navod, jak toto cas od casu vyvolat rucne v ramci shutdown.

Nechci to uplne vypnout, protoze cas od casu najde na disku chybu.

Diky,
JF

Hmm… to asi jedine udelat to “rucne”. Kazdy ext2/3 filesystem ma v hlavicce zapsano jak casto se ma kontroloval. Hlavicku vypisete prikazem “tune2fs -l /dev/hdxY”. Jak zmenit periodu kontrol zjistite v manualove strance k prikazu tune2fs. Pokud ji nastavite na nulu kontrola se nikdy pri pripojovani. Duvod proc se FS kontroluje pi startu je, ze FS se nesmi pouzivat, nebo musi byt pripojen pouze pro cteni.

Pri shutdownu byste fsck mohl pridat do /etc/init.d/halt za sekci:

Remount read only anything that’s left mounted.

musel byste si ale napsat programek, ktery pomoci tune2fs vycte hodnotu Last checked a pokud dojde k zaveru ze by FS mel zkontroloval spusti fsck.ext3.

Jak vidite tak to sice teoreticky jde ale neni to jednoduche.
Pokud to jde jednoduzseji, tak se rad necham poucit.

MMCH: Prave kuli tomu aby fsck start prilis nezdrzoval, dela se / svazek primerene veliky a napr. /home se dava na jiny.

/sbin/shutdown -F -r now

To bohuzel vubec neni to co puvodni dotaz chtel - on chtel aby se fsck provadel pri shutdownu nikoli pri startu. Tohle zajisti vynuceni fsck pri dalsi startu.

Dobry den,

myslim, ze Vami popsanym zpusobem to pujde.

mam nekde v /usr/bin
xpoweroff.sh:


# pro fsck pri shutdown
touch /tmp/fsckshutdown
/usr/bin/poweroff

a xreboot.sh:


# pro fsck pri reboot
rm /tmp/fsckshutdown 2>/dev/null

Za sekci # Remount read only anything that’s left…
mam
/bin/ckmountnum.p

A ten ckmountnum.p je:


#!/usr/bin/perl -w
if( -f "/tmp/fsckshutdown" ){
   my $mc = 0;
   my $mmc = 0;
   open(MN, "/sbin/tune2fs -l /dev/hdd7 |") or die ;
   while(<MN>){
      if( /^Mount count:\s*(\d+)/ ){
         $mc = $1;
         next;
      }
      if( /^Maximum mount count:\s*(\d+)/ ){
         $mmc = $1;
         next;
      }
   }
   close(MN);

   if( $mc && $mmc && ($mc > $mmc - 5) ){
      print "Provadim /sbin/fsck.ext3 na /dev/hdd7 ($mc/$mmc)\n";
      system( "/sbin/fsck.ext3 -y /dev/hdd7" );
   }
}

a zda se, ze to funguje. Trochu jsem zvysil ten interval pro kontrolu, tech 5 je rezerva na restarty kdy se fsck pustet nema.

Diky,
JF

Jen jsem vam pridal do prispevku zavorky pro kod, ale ten smajlik je tam stejne…chjo. Diky za kompletni zpracovani. Predpokladam jen, ze pak se musi pocitac vypinat prikazem xpoweroff.sh ne?

Ano, vypnout tim xpoweroff.sh nebo (kdyz se to spouste nechce, tak tim xreboot.sh).
/ mam jen 12 GB, /boot 10 MB, ale /home ma pres 500 GB, to uz zdrzuje.