Dateisystem wird nur read-only gemounted

Sickboy

Müßiggänger
Hallo,

ich habe FreeBSD 10.1-RELEASE frisch auf einen Server gepackt. Die Partionierung erfolgte per Hand mit gpart. Nun habe ich das Problem, dass beim Booten die Dateisysteme nur read-only gemounted werden, obwohl in der /etc/fstab jeweils "rw" angegeben ist.

Beim Booten wird auch angezeigt: "Trying to mount root from ufs:/dev/gpt/gprootfs [rw]..."

Wenn ich im Single-User-Modus dann "mount -uw /" aufrufe, habe ich Schreibzugriff.

Alles sehr seltsam. Was habe ich falsch gemacht?
 
War über das WE verreist und konnte daher nicht früher antworten.

/etc/fstab:
Code:
# Device            Mountpoint  FStype  Options Dump    Pass#
/dev/gpt/gpswap     none        swap    sw      0       0
/dev/gpt/gprootfs   /           ufs     rw      1       1
/dev/gpt/gpttmpfs   /tmp        ufs     rw      2       2
/dev/gpt/gpusrfs    /usr        ufs     rw      2       2
/dev/gpt/gpvarfs    /var        ufs     rw      2       2
 
Und Du bist Dir sicher, dass der Rechner im Multiuser-Modus ist und dass alle in der fstab genannten Dateisysteme ro-gemountet sind?
 
Das ist aber doof, dann wird auch kein Log in /var geschrieben. Gibt es da keine Fehlermeldungen beim Booten? Oder irgendwelche seltsamen Mitteilungen zu ata*, fs, gpt* und allem was zu Dateisystemen und Laufwerken gesagt werden könnte? Du kannst mit Scrolllock und dann PgUp/Dn alles bis nach oben hin übersehen.
 
mount:
Code:
/dev/gpt/gprootfs on / (ufs, local, read-only)
devfs on /dev/ (devfs, local, multilabel)

Im Single-User-Modus gibt es keine besonderes Boot-Meldungen; im Multi-User werden Warnungen/Fehler wegen read-only-Zugriff geworfen.
 
Vielleicht ist dir beim Anlegen der Partitionen ein Fehler unterlaufen.

Poste einmal die Partitionstabelle:

Code:
gpart backup <Device>
 
Code:
# gpart backup /dev/da0
GPT 128
1   freebsd-boot        40      1024    gpboot
2   freebsd-ufs       2048   4194304    gprootfs
3   freeebsd-swap  4196352   4194304    gpswap
4   freebsd-ufs    8390656  20971520    gpvarfs
5   freebsd-ufs   29362176   4194304    gptmpfs
6   freebsd-ufs   33556480 253123408    gpusrfs
 
Der zweiten Partition 'gbrootfs' fehlt das [bootme] Flag.

Versuche gpart modify... ich habe es jedoch noch nicht benutzt und bin mir bei -i nicht sicher ob der geforderte Index korrekt ist.

Code:
gpart modify -i 2 -t freebsd-boot da0

Kontrolle wieder mit gpart backup ada0

Die dritte Partition scheint mir falsch zu sein, sie beginnt mit der höheren Zahl und endet mit der kleineren?

Frage ans Forum: Sollte das nicht genau andersherum sein, oder besser, kann das funktionieren?

Bitte entschuldigt die vorherigen Sätze. Die zweite Zahl ist ja die Größe...
 
Bist du dir da wirklich sicher? Der Bootcode wird doch auf die Boot-Partition geschrieben:
Code:
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 da0
 
Oh Mann, du hast Recht... ich hatte eben etwas in meinen Aufzeichnungen verwechselt.

Dennoch steht bei mir hinter der Root-Partition immer ein [bootme] Flag, angelegt wurde sie aber normal als freebsd-ufs.

Nach genauerem Nachdenken, wüsste ich auch nicht mehr, warum das die Probleme verursachen könnte. Dein Server bootet ja von der Root-Partition.

Wie auch immer...

Ich hatte erst kürzlich in einer VM Probleme mit den Labeln, kannst du zum Testen einmal den device Eintrag für / in der /etc/fstab auf die tatsächliche Partition /dev/da0p2 zeigen lassen?

Ändert sich etwas?
 
Ich würde einmal rc-Debugging einschalten und schauen, ob die rc-Scripte korrekt durchlaufen werden. Auf den ersten Blick sieht es so aus, als würde da irgendein Schritt beim Mounten der Partitionen ausgelassen werden. Dazu in die /etc/rc.conf:
Code:
rc_debug="YES"
 
Folgende Warnungen werden geworfen:

Code:
devd: bind: No such file or directory
/etc/rc: WARNING: failed to start devd
[...]
/etc/rc: WARNING: run_rc_command: cannot run /usr/sbin/syslogd
[...]
ldconfig: warning: /usr/lib: No such file or directory
[...]
/etc/rc.d/tmp: mktemp: not found
/etc/rc.d/tmp: grep: not found
[...]
/etc/rc: WARNING: run_rc_command: cannot run /usr/sbin/sshd
[...]
Jan 6 16:03:51 init: can't exec getty '/usr/libexec/getty' for port /dev/ttyv0 No such file or directory
Anschließend bootet er nicht weiter (Multi-User-Modus) und hängt.
 
mount:
Code:
/dev/gpt/gprootfs on / (ufs, local, read-only)
devfs on /dev/ (devfs, local, multilabel)

Du hast doch gesagt, dass alle Dateisysteme ro-gemountet sind. Also Männecken... guck doch hin! Da fehlt doch alles außer rootfs.

Man kann klar sehen, dass er gar nicht zum Mounten kommt, sondern den Status vom Single-User-Modus beibehält, wo rootfs ro-gemountet ist. Kann das sein, dass die gpt-Labels nicht in /dev/gpt sind? Wenn sie alle da sind, dann kommentiere mal die komplette rc.conf mal aus (bis auf das WIRKLICH NÖTIGSTE). Vielleicht ist da eine komische Einstellung oder sie wurde mit einem MS-DOS-Editor (falsche Zeilenendungen) erstellt.
 
Du hast doch gesagt, dass alle Dateisysteme ro-gemountet sind. Also Männecken... guck doch hin! Da fehlt doch alles außer rootfs.
Das ist mir schon klar. Nur wenn ich manuell im SU-Modus mounte und dann in den MU-Modus wechsle klappt es trotzdem nicht.

Kann das sein, dass die gpt-Labels nicht in /dev/gpt sind?
Die sind definitiv vorhanden.

Wenn sie alle da sind, dann kommentiere mal die komplette rc.conf mal aus (bis auf das WIRKLICH NÖTIGSTE). Vielleicht ist da eine komische Einstellung oder sie wurde mit einem MS-DOS-Editor (falsche Zeilenendungen) erstellt.
Hat nichts geändert. fstab/rc.conf habe ich mit vi angelegt.

Boot-Nachrichten im MU-Modus:

Code:
Starting file system checks:
/dev/gpt/gprootfs: FILE SYSTEM CLEAN; SKIPPING CHECKS
[...]
/dev/gpt/gptmpfs: FILE SYSTEM CLEAN; SKIPPING CHECKS
[...]
/dev/gpt/gpusrfs: FILE SYSTEM CLEAN; SKIPPING CHECKS
[...]
/dev/gpt/gpvarfs: FILE SYSTEM CLEAN; SKIPPING CHECKS
[...]
Mounting local file systems:.
mount: /dev/gpt/gpusrfs: Device busy
[...]
 
"Device busy" ist schon mal neu. Bist Du sicher, dass Du nicht am falschen GEOM-Layer mountest?

Sonst, bitte auch Ausgaben von:

Code:
mount -v

und

Code:
ls /dev/gpt/
 
Ich bin mir ziemlich sicher, dass ich alles richtig gemacht habe. Vor ein paar Wochen lief die Kiste testweise schon mal mit FreeBSD 9.2. Da habe ich auch nicht anders installiert/konfiguiert.

Im SU-Modus:
Code:
# mount -v
/dev/gpt/gprootfs on / (ufs, local, read-only, reads: sync 102 async 3, fsid 5869ac54d9304554)
devfs on /dev/ (devfs, local, multilabel, fsid 00ff007171000000)

# ls /dev/gpt
gpboot
gprootfs
gptmpfs
gpvarfs
gpdatafs [Anmerkung: zweiter Plattenverbund als RAID5]
gpswap
gpusrfs
 
Echt seltsam.

Ist das ein GENERIC-Kernel?

Mach mal folgendes:
1) Boote in (echten; also nicht nachdem init schon versucht hat zu mounten als Fallback) Single-User-Modus am besten mit Verbose-Kernel.
2) Mach dann als erstes: mount -a

Wird da alles gemountet oder kommt auch was von "Device busy"? Wenn so ein Fehler kommt, was steht da sonst?
 
Zurück
Oben