Toon posts:

Hoe fsck je het rootfs

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dit is een vraag die ik al langer heb, maar nog niet heb kunnen oplossen.

Hoe kan je je root-filesystem op fouten checken? Als ik bijvoorbeeld dit doe, dan krijg je dit:

vortex:~# fsck /dev/hda1
fsck 1.27 (8-Mar-2002)
e2fsck 1.27 (8-Mar-2002)
/dev/hda1 is mounted.

WARNING!!! Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.

Do you really want to continue (y/n)?

Denk ik "Ok, van unmount ik toch ff" maar dat kan dus niet:

vortex:~# umount /dev/hda1
umount: /: device is busy
vortex:~#

Hoe kun je toch je filesystem checken?

Verwijderd

probeer eens:

mount / -o remount,ro
fsck /dev/hda1

dan mount je / read-only en kan je 'm checken geloof ik. na het checken wel weer rw mounten, dus: mount / -o remount,rw

edit:

vergeet niet alle programma's af te sluiten die naar de / willen schrijven, bijv. sysklogd e.d.

  • JJJ
  • Registratie: Mei 2000
  • Laatst online: 21:04

JJJ

Ik ga altijd naar init 1 (let op, networking gaat dan plat dus dit kun je niet remote doen!) en ram dan wel fsck /dev/hdXX. Ze zeggen wel dat ie unmounted moet zijn maar das ook weer een beetje onzin omdat je anders toch geen toegang hebt tot /bin/e2fsck en dergelijke progs. Ik heb het altijd op die manier gedaan en het is bij mij nog nooit fout gegaan :P

Disclaimer: ik kan niet aansprakelijk gesteld worden voor evt. verloren data en zulke dingen bij het uitproberen van mijn methode :)

Verwijderd

Ik zou de oplossing van wkamphuis prefereren. Read-only mounten en dat eventueel doen in runlevel 1.

Verwijderd

Topicstarter
JJJ schreef op 03 november 2002 @ 19:47:
Ik ga altijd naar init 1 (let op, networking gaat dan plat dus dit kun je niet remote doen!) en ram dan wel fsck /dev/hdXX. Ze zeggen wel dat ie unmounted moet zijn maar das ook weer een beetje onzin omdat je anders toch geen toegang hebt tot /bin/e2fsck en dergelijke progs. Ik heb het altijd op die manier gedaan en het is bij mij nog nooit fout gegaan :P

Disclaimer: ik kan niet aansprakelijk gesteld worden voor evt. verloren data en zulke dingen bij het uitproberen van mijn methode :)
Die bak staat hier niet. En er zit geen monitor aan. De stroom is wel uitgevallen geweest. Ik zal smb ook ff uitzetten

Verwijderd

Topicstarter
vortex:~# mount / -o remount,ro
mount: / is busy

Welke moet ik dan uitzetten?

vortex:~# /etc/init.d/
atd hwclockfirst.sh nfs-common setserial
bootmisc.sh ifupdown nviboot single
checkfs.sh inetd portmap skeleton
checkroot.sh iptables ppp ssh
console-screen.sh keymap.sh procps.sh sysklogd
cron klogd rc umountfs
devpts.sh lpd rc.local umountnfs.sh
dns-clean makedev rcS urandom
exim modutils reboot wu-ftpd
halt mountall.sh rmnologin
hostname.sh mountnfs.sh samba
hwclock.sh networking sendsigs

Verwijderd

Topicstarter
Wat kan er nu nog voor zorgen dat ik niet kan unmounten?

vortex:/etc/init.d# ps -aux
Bad syntax, perhaps a bogus '-'?
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.4 0.1 1272 484 ? S 20:35 0:07 init [2]
root 2 0.0 0.0 0 0 ? SW 20:35 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW 20:35 0:00 [kupdate]
root 4 0.0 0.0 0 0 ? SW 20:35 0:00 [kswapd]
root 5 0.0 0.0 0 0 ? SW 20:35 0:00 [keventd]
daemon 97 0.0 0.1 1384 428 ? S 20:36 0:00 /sbin/portmap
root 177 0.0 0.2 1988 700 ? S 20:36 0:00 /usr/sbin/inetd
root 193 0.0 0.4 2788 1212 ? S 20:36 0:00 /usr/sbin/sshd
daemon 198 0.0 0.2 1388 584 ? S 20:36 0:00 /usr/sbin/atd
root 201 0.0 0.2 1652 684 ? S 20:36 0:00 /usr/sbin/cron
root 207 0.0 0.1 1256 468 tty1 S 20:36 0:00 /sbin/getty 38400 tty1
root 208 0.0 0.1 1256 468 tty2 S 20:36 0:00 /sbin/getty 38400 tty2
root 209 0.0 0.1 1256 468 tty3 S 20:36 0:00 /sbin/getty 38400 tty3
root 210 0.0 0.1 1256 468 tty4 S 20:36 0:00 /sbin/getty 38400 tty4
root 211 0.0 0.1 1256 468 tty5 S 20:36 0:00 /sbin/getty 38400 tty5
root 212 0.0 0.1 1256 468 tty6 S 20:36 0:00 /sbin/getty 38400 tty6
root 213 0.0 0.7 6420 1976 ? S 20:36 0:00 /usr/sbin/sshd
root 215 0.0 0.4 2216 1252 pts/0 S 20:36 0:00 -bash
root 347 0.0 0.4 2956 1108 pts/0 R 21:04 0:00 ps -aux

  • Wilke
  • Registratie: December 2000
  • Laatst online: 23:00
Al die processen :)

Je kunt bij mijn weten je root partitie nooit unmounten terwijl je systeem draait...wel read-only remounten.

Verwijderd

Topicstarter
Wilke schreef op 03 november 2002 @ 20:02:
Al die processen :)

Je kunt bij mijn weten je root partitie nooit unmounten terwijl je systeem draait...wel read-only remounten.
Ja, ik had begrepen dat je dat zo deed:
mount / -o remount,ro

Wil bij mij niet. Ik kan niet terug naar runlevel 1, dan kom ik er helemaal niet meer bij.

Verwijderd

Topicstarter
Ik heb een idee:
ik maak een script
#ga naar runlevel 1
telinit 1
#mount readonly
mount / -o remount,ro
#checken maar
fsck /dev/hda1 -a > /root/log.txt
#mounten rw
mount / -o remount,rw
# ga weer naar runlevel2
telinit 2

En die roep ik aan met check.sh nohup &

Zou dat werken denken jullie?

  • Kettrick
  • Registratie: Augustus 2000
  • Nu online

Kettrick

Rantmeister!

Verwijderd schreef op 03 november 2002 @ 20:50:
#mount readonly
mount / -o remount,ro
#checken maar
fsck /dev/hda1 > /root/log.txt

Zou dat werken denken jullie?
Ik denk het niet B) :X


Hoe kan je naar /root/log.txt schrijven als je filesystem readonly gemount is :?

Verwijderd

In principe kan je alles killen behalve je eigen sshd process en je shell. Dan ro mounten en fsck'en.

als je klaar bent je fs weer rw mounten en rebooten, met een ro fs kan het rebooten fout gaan.

Verwijderd

Topicstarter
RoeLz schreef op 03 november 2002 @ 20:53:
[...]


Ik denk het niet B) :X


Hoe kan je naar /root/log.txt schrijven als je filesystem readonly gemount is :?
O ja hehe :) 8)7 |:(

Verwijderd

Topicstarter
Verwijderd schreef op 03 november 2002 @ 20:53:
In principe kan je alles killen behalve je eigen sshd process en je shell. Dan ro mounten en fsck'en.

als je klaar bent je fs weer rw mounten en rebooten, met een ro fs kan het rebooten fout gaan.
Zie je die processlist hierboven? wat moet ik nog killen?

Verwijderd

Topicstarter
Ik heb em nu zo :)

#!/bin/sh
#ga naar runlevel 1
telinit 1
# ff wachten
sleep 10
#mount readonly
mount / -o remount,ro
#checken maar
fsck /dev/hda1 -a > /mnt/hdb1/log.txt
#mounten rw
mount / -o remount,rw
# ga weer naar runlevel2
telinit 2

Het probleem was dat het even wat tijd kost om in runlevel 1 te komen, en dan is ie al aan het checken. FF een sleep er tussen dus

Verwijderd

Zie je die processlist hierboven? wat moet ik nog killen?
log in en type:
killall -v portmap inetd atd cron

dan moet `mount / -o remount,ro` werken.

Verwijderd

Topicstarter
Verwijderd schreef op 03 november 2002 @ 21:14:
[...]


log in en type:
killall -v portmap inetd atd cron

dan moet `mount / -o remount,ro` werken.
werkt, tanks.

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 14:23

odysseus

Debian GNU/Linux Sid

Je kunt ook even chrooten naar een andere partitie, desnoods een RAM-based partitie. Vervolgens kun je je oude root-filesystem umounten en checken.

[extra]
Kijk ook eens naar het programma lsof, dat laat openstaande bestanden zien. 'lsof +D /' laat alle openstaande bestanden op / zien (en ook op de overige partities, maar die kun je eenvoudig wegfilteren).
[/extra]

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.

Pagina: 1