Schlagwort-Archive: mount

Richtig chrooten unter Linux zur Reparatur

Problem:
Kurze Nachlässigkeit beim Updatevorgang und schon bootet der Rechner nach dem nächsten Neustart nicht mehr.

Lösung:
Es sollte ein Bootmedium zur Hand sein! Schön ist es, wenn man zB die GRML Bootdisk in GRUB eingebunden hat. Das vereinfacht die Prozedur natürlich ein wenig.

Wichtig: für eine 32bit Installation benötigt man auch ein 32bit Medium um die nachfolgenden Aktionen auszuführen. Kurzum: Die Architecture des Bootmediums muss stimmen!

Ich boote also das Rettungssystem ganz normal. Ich melde mich am System an, werde root und prüfe, wie die Partitionen des kaputten Systems lauten.
su root -
fdisk -l

Wenn die benötigten Partitionen bekannt sind, dann mountet man die Dateisysteme nach und nach an einen beliebigen Punkt. Ich finde /mnt passend. =)
# erstelle meinen Zielordner
mkdir -p /mnt/rescue
# auf /dev/sda2 befindet sich /
mount /dev/sda2 /mnt/rescue
# auf /dev/sda4 befindet sich /home
mount /dev/sda4 /mnt/rescue/home
# /dev wird für die Geräte benötigt
mount -o bind /dev /mnt/rescue/dev
# /proc wird auch benötigt
mount -t proc /proc /mnt/rescue/proc

Unterhalb von /mnt/rescue sind nun alle wichtigen Dinge gemountet und nun kann die Reparatur via chroot beginnen.
chroot /mnt/rescue /bin/bash
Ab hier sollten alle Systembefehle wie gewohnt verfügbar sein. Grub kann so zB neu geschrieben werden.
Nach der Reparatur einfach rebooten, sonst muss nichts beachtet werden.

ISO File unter Linux mounten

Problem:
Ich möchte in ein ISO reinschauen ohne es zu brennen. Unter Windows gibt es Werkzeuge wie DaemonTools dafür – nur wie mache ich das unter Linux?

Lösung:
Man kann die ISO Datei ohne Probleme (als root) unter Linux mounten. Dazu wird der folgende Befehl genutzt

mount -t iso9660 -o ro,loop=/dev/loop0 /pfad/zur/iso /pfad/zum/mounten

Sollten mehrere ISOs gemountet werden, dann muss das loop-device entsprechend angepasst werden, mittels

ls /dev/loop*

werden die verwendbaren LoopDevices angezeigt.

Flexibles Filesystem für Datenpartition unter Linux

Problem:
Ich benötige ein schnelles, unkompliziertes, für große Filestores erprobtes und vergrößerbares Dateisystem.

Lösung:
Ich werde wohl xfs nutzen.

Es hat eine aktive Community (siehe http://xfs.org/index.php/XFS_Status_Updates) und wird von RedHat entwickelt. Es kann Dateisysteme über 16 TB bedienen und man kann es mittels „xfs_grow“ vergrößern.

xfs_growfs  is most often used in conjunction with logical volumes (see md(4) and lvm(8) on Linux).  However, it can also be used on a regular disk partition, for example if a partition has been enlarged while retaining the same starting block.

Da ich XFS in einer VMDK nutzen möchte, ist auch wichtig, dass es Vergrößerungen über VMWare stand hält. Andere Filesysteme verhalten sich wohl zickig in solchen Fällen.
Verkleinern unterstützt xfs (bisher) leider nicht, dazu sollte man tatsächlich die Daten komplett vom Filesystem nehmen und frisch formatieren. 😉

Folgende Mountoptionen werden beim Einsatz von XFS auf einem virtuellen Host empfohlen:

barrier
optimiert das Caching, sollte standardmäßig aktiviert sein
http://xfs.org/index.php/XFS_FAQ#Write_barrier_support.

inode64
bei Filesystemen größer 16TB – wichtig: wurde es einmal genutzt darf es nicht mehr weg gelassen werden.

Im Hardforum gibt es einen interessanten Thread dazu http://hardforum.com/showthread.php?t=1704262

Hier befinden sich noch weitere Infos zur Optimierung
http://www.practicalsysadmin.com/wiki/index.php/XFS_optimisation

Mögen die Spiele beginnen!

Ich erstelle also mein Filesystem via

mkfs.xfs -f -l size=128m,lazy-count=1 -L DATATANK /dev/sdb1

und mounte es mit folgenden Optionen

mount -o logbufs=8,logbsize=256k,barrier,noatime,nodiratime,largeio,inode64,quota /dev/sdb1 /srv

Diese Optionen kann man nun in /etc/fstab eintragen und somit fixen!

Die Option osyncisosync ist deprecated, was auch im syslog quittiert wird

osyncisosync has no effect, option is deprecated.

Next: Plattendurchsatz testen!

Blockdatei mit Dateisystem

Wer, aus welchen Gründen auch immer, eine Datei mit Dateisystem erstellen möchte, kann dies in wenigen Schritten tun.

Erstellen der Datei:
Festplatten haben idR eine Blockgröße von 512kb – diesen Wert übernehmen wir mit bs=512kb.
Abhängig vom benötigten Speicher zählen wir die Blocksize hoch – in dem Fall werden mit count=16000 8GB allociert.
Die zu erstellende Datei soll in /var/extra abgelegt werden.

dd if=/dev/zero of=/var/extra/meine-blockdatei bs=512 count=16000

Formatieren der Datei:
Die Formatierung kann wie gewohnt vorgenommen werden.
zB:
mkfs.ext3 /var/extra/meine-blockdatei

Einhängen der Datei:
Die Datei kann nun wie gewohnt (wie zB ein ISO Abbild) gemountet werden.
mount -o loop /var/extra/meine-blockdatei /home/user

Soll das zum Systemstart stattfinden, muss auf die Reihenfolge der Mounts geachtet werden. In dem Fall muss also /var gemountet sein bevor die Datei gemountet werden soll – idR selbsterklärend.

Verwendungszwecke sind zB:
1. Zuwenig Swapspeicher definiert – Erweiterung wäre mit einer entsprechend formatierten Blockdatei möglich
2. Bedarf eines Dateisystems mit bestimmter Funktion (Beispiel Verschlüsselung)
3. Angenommen eine Platte wäre derart partitioniert, daß der größte freie Speicher auf einer zwingend „noexec“ gemounteten Platte ist – hier kann eine solche Blockdatei zB in /home/user mit exec gemountet werden.

Dieser Beitrag wurde zur Gedächnisstütze hier aufgenommen. 😉