BearbeitenDiese alte Frage ist vielleicht nicht lesenswert, da die Lösung einfach ist. Ich habe checkdisk auf dem gesamten Laufwerk verwendet, anstatt auf einer Partition davon, das ist alles. matnagel/Bearbeiten
Ich verwende eine Ubuntu 8.04-Serverinstanz mit einer 8 GB großen virtuellen Festplatte auf VMware 1.0.9.
Zur Wartung der Festplatte habe ich eine Kopie der virtuellen Festplatte erstellt (indem ich eine Kopie der beiden vmdk-Dateien von sda auf der gestoppten VM auf dem Host erstellt habe) und sie der ursprünglichen VM hinzugefügt. Jetzt hat diese VM ihre ursprüngliche virtuelle Festplatte sda plus eine 1:1-Kopie (sdd). Es gibt zwei zusätzliche Festplatten sdb und sdc, die ich ignoriere.)
Ich würde erwarten, dass SDB nicht gemountet ist, wenn ich die VM starte. Also versuche ich, von der laufenden VM aus ein Ext2-Fsck auf SDD auszuführen, aber das Fsck meldet, dass SDB gemountet wurde.
$ sudo fsck.ext3 -b 8193 /dev/sdd
e2fsck 1.40.8 (13-Mar-2008)
fsck.ext3: Device or resource busy while trying to open /dev/sdd
Filesystem mounted or opened exclusively by another program?
Der Befehl „mount“ sagt mir nicht, dass die SSD gemountet ist:
$ sudo mount
/dev/sda1 on / type ext3 (rw,relatime,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sdc1 on /mnt/r1 type ext3 (rw,relatime,errors=remount-ro)
/dev/sdb1 on /mnt/k1 type ext3 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw)
Wenn ich die Warnung ignoriere und mit dem fsck fortfahre, werden viele Fehler gemeldet.
Wie bekomme ich das in den Griff? Gibt es eine bessere Möglichkeit, herauszufinden, ob die SSD gemountet ist? Oder wie ist sie „beschäftigt“? Wie kann ich sie dann unmounten? Wie kann ich verhindern, dass Ubuntu automatisch gemountet wird? Oder übersehe ich noch etwas? Auch in /var/log/syslog kann ich nicht sehen, dass sie gemountet ist, dies ist der letzte Teil der Startreihenfolge:
kernel: [ 14.229494] ACPI: Power Button (FF) [PWRF]
kernel: [ 14.230326] ACPI: AC Adapter [ACAD] (on-line)
kernel: [ 14.460136] input: PC Speaker as /devices/platform/pcspkr/input/input3
kernel: [ 14.639366] udev: renamed network interface eth0 to eth1
kernel: [ 14.670187] eth1: link up
kernel: [ 16.329607] input: ImPS/2 Generic Wheel Mouse as /devices/platform/i8042/serio1/
kernel: [ 16.367540] parport_pc 00:08: reported by Plug and Play ACPI
kernel: [ 16.367670] parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE]
kernel: [ 19.425637] NET: Registered protocol family 10
kernel: [ 19.437550] lo: Disabled Privacy Extensions
kernel: [ 24.328857] loop: module loaded
kernel: [ 24.449293] lp0: using parport0 (interrupt-driven).
kernel: [ 26.075499] EXT3 FS on sda1, internal journal
kernel: [ 28.380299] kjournald starting. Commit interval 5 seconds
kernel: [ 28.381706] EXT3 FS on sdc1, internal journal
kernel: [ 28.381747] EXT3-fs: mounted filesystem with ordered data mode.
kernel: [ 28.444867] kjournald starting. Commit interval 5 seconds
kernel: [ 28.445436] EXT3 FS on sdb1, internal journal
kernel: [ 28.445444] EXT3-fs: mounted filesystem with ordered data mode.
kernel: [ 31.309766] eth1: no IPv6 routers present
kernel: [ 35.054268] ip_tables: (C) 2000-2006 Netfilter Core Team
mysqld_safe[4367]: started
mysqld[4370]: 100124 14:40:21 InnoDB: Started; log sequence number 0 10130914
mysqld[4370]: 100124 14:40:21 [Note] /usr/sbin/mysqld: ready for connections.
mysqld[4370]: Version: '5.0.51a-3ubuntu5.4' socket: '/var/run/mysqld/mysqld.sock' port: 3
/etc/mysql/debian-start[4417]: Upgrading MySQL tables if necessary.
/etc/mysql/debian-start[4422]: Looking for 'mysql' in: /usr/bin/mysql
/etc/mysql/debian-start[4422]: Looking for 'mysqlcheck' in: /usr/bin/mysqlcheck
/etc/mysql/debian-start[4422]: This installation of MySQL is already upgraded to 5.0.51a, u
/etc/mysql/debian-start[4436]: Checking for insecure root accounts.
/etc/mysql/debian-start[4444]: Checking for crashed MySQL tables.
Antwort1
Ja, Sie haben Recht, dass Sie fsck auf dem gesamten Laufwerk ausführen, statt auf der Partition. Um zu prüfen, ob das Dateisystem gemountet ist, können Sie /etc/mtab prüfen und auch die Ausgabe von lsof greppen, um sicherzustellen, dass kein Prozess Ihre Partition geöffnet hat.
Antwort2
Mir ist gerade aufgefallen, dass ich Folgendes eingegeben habe:
$ sudo fsck.ext3 /dev/sdd
was angibt, dass die ganze Festplatte und nicht die Partition überprüft werden soll: es sollte
$ sudo fsck.ext3 /dev/sdd1
Ich denke, das macht die Frage obsolet. Ich schaue nur nach ...
Antwort3
Überprüfen Sie zur späteren Bezugnahme immer /proc/mounts
, da der mount
Befehl nur den Inhalt anzeigt /etc/mtab
, der möglicherweise nicht mit der Realität übereinstimmt.
Antwort4
Überprüfen Sie /etc/fstab und stellen Sie sicher, dass Sie /dev/sdd nicht zweimal verwenden.
Wenn dies der Fall ist, mounten Sie / als rw erneut, wenn Sie zur Eingabe des Root-Passworts aufgefordert werden, um in die Rettungs-Shell zu gelangen:
einhängen -o erneut einhängen -o rw /
Erstellen Sie ein temporäres Mount-Verzeichnis für /fs oder wo auch immer sich Ihre /etc/fstab befindet (z. B. /tmp/root).
mkdir /tmp/root
Mounten Sie dort Ihr Root-FS
/dev/sd einhängen??? /tmp/root
Bearbeiten Sie Ihre /etc/fstab
vi /tmp/root/etc/fstab
beheben Sie Ihr Problem, schreiben Sie es, starten Sie neu …