Boot-Laufwerk auf andere Festplatte verschieben

Die Partition der /boot Festplatte wird häufig relativ klein gemacht, häufig auch etwas "zu"-klein, denn neuere Linux Distributionen brauchen für die Kernel-History gerne mal über 200MB.

Doch was tun, wenn die /boot Partition zu klein wird? – Neue erstellen und das boot Laufwerk verschieben!

Hier wird beschrieben wies geht.

Wir gehen her davon aus, dass:
/dev/sda1 die alte und
/dev/sdb1 die neue Platte/Partition ist.
Die neue boot Partition sollte ausserdem bereits mit fdisk/cfdisk formatiert und mit dem "bootable" flag markiert sein.

Zur Sicherheit ändern wir erst nur das label der alten boot Platte (/boot wird in fstab meist nach label gemountet) und passen den fstab Eintrag ggf. an.
Erst wenn die neue Partition in Betrieb ist, kann die alte gelöscht werden:

tune2fs -L/oldboot /dev/sda1
# ggf. Eintrag in /etc/fstab anpassen

Nun erstellen wir das filesystem der neuen Partition:

mke2fs -j -L /boot /dev/sdb1

Als nächstes werden die beiden Partition gemountet und synchronisiert:

umount /boot
mkdir -pv /mnt/{sda1,sdb1}
mount /dev/sda1 /mnt/sda1
mount /dev/sdb1 /mnt/sdb1
rsync -ahv --numeric-ids --delete /mnt/sda1/ /mnt/sdb1/

Zum Schluss muss man noch mittels grub den boot Sektor auf die neue Disk schreiben:

grub
grub> device (hd1) /dev/sdb
device (hd1) /dev/sdb
grub> root (hd1,0)
root (hd1,0)
 Filesystem type is ext2fs, partition type 0x83
grub> setup (hd1)
setup (hd1)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd1)"...  15 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.
grub> quit

Nach einem Reboot sollte die neue boot Partition aktiv sein!

Ressourcen

LVM: Physical Volume vergössern

Physical Volumes haben sich als praktischen Standard für das Volume Management etabliert.
Doch irgendwann ist die zugrunde liegende Disk voll und muss vergrössert werden, was in virtuellen Umgebungen ganz einfach ist.

Für die nachfolgende Vergrösserung der Physical Volumes gibt es verschiedene Vorgehensweisen, welche hier beleuchtet werden.

Continue reading LVM: Physical Volume vergössern

Parameter im shell-script auswerten mit getopts

Es ist zwar durchaus möglich mit der "alt bewährten Methode" $1-$9 in shell scripts Kommandozeilen zu machen, allerdings ist das eher umständlich.

Mit der Funktion "getopts" hat jedoch zumindest die bash-shell ein sehr handliches Werzeug dafür eingebaut!

Dabei sieht die synatx so aus:

getopts Optionen Variable [Argumente]

Dabei werden alle Optionen die man Abfragen will mit einem ":" davor und dahinter hingeschrieben, z.B.:

getopts :a:

Möchte man schalter/flags verwenden, die keinen Wert haben, lässt man eingach den ":" hinter der Option weg:

getopts :a

Und ein praktisches Beispiel:

#!/bin/bash
# Demonstriert getopt
while getopts abc:D: opt
do
   case $opt in
       a) echo "Option a";;
       b) echo "Option b";;
       c) echo "Option c : ($OPTARG)";;
       D) echo "Option D : ($OPTARG)";;
   esac
done

Und so wird das dann aufgerufen:

user@host > ./test.sh -a
Option a
 
user@host > ./test.sh -b
Option b
 
user@host > ./test.sh -c
./agetopter: option requires an argument -- c
 
user@host > ./test.sh -c Hallo
Option c : (Hallo)

Quellen

getopt manpage
getopts – Kommandozeilenoptionen auswerten

LVM: Physical Volume entfernen

Manchmal merkt man, dass man eine Disk „zu viel“ in der VG hat und diese anderweitig verwenden möchte.

Mittels pvmove kann man die Daten von einer Disk (physical volume) auf andere in der gleichen volume group (VG) verschieben, danach kann man mittels vgreduce die Disk aus der VG entfernen und schliesslich mit pvremove das physical volume komplett entfernen.

Das ganze sieht so aus:

pvmove /dev/sdX
vgreduce <volume_group> /dev/sdX
pvremove /dev/sdX

Achtung: Möchte man danach die Festplatte im laufenden Betrieb „physisch“ aus dem System entfernen, muss man vorher ebenfalls die System-Referenzen entfernen!

Gewaltsamer Reset

In gewissen Situation muss man ein system mit einem hängenden Prozess neu starten, weiss aber, dass es mit dem normalen "reboot" Kommando beim herunterfahren hängen bleiben wird. Dies passiert z.B. besonders häufig bei Filesystem-Prozessen, die vom Kernel ausgeführt werden und sich somit nicht "killen" lassen, wie copy, rsync, nfs, usw.

Somit hilft dann nur noch der "Hard Reset", bei dem man jedoch physischen Zugang zum Server haben muss.

Hat man diesen gerade nicht gibt es noch eine andere Möglichkeit, das System sofort neu zu starten, ohne durch den Prozess des "herunterfahrens" zu gehen: Über das in den Linux-Kernel integrierte sysrq-Interface.

Dies schaltet man zuerst mittels:

echo s > /proc/sysrq-trigger

an und löst dann den "brutalen" reset über:

echo b > /proc/sysrq-trigger

aus.

Quellen:

c’t: [http://www.heise.de/ct/hotline/Gewaltsamer-Reset-unter-Linux-321064.html|Gewaltsamer Reset unter Linux]

ESX: Keine Netzwerkverbindung bei einem ESX Server innerhalb einer VM

In einem VMware ESX System kann man auch ein ESX innerhalb einer VM ertsellen, was zum testen sehr gut sein kann. 😉

Man wird aber merken, dass die VMs in der "nested VM", keine Netzwerk-Verbindung haben.
Dieses kommt daher, weil beim ESX Standardmässig der sog. "Promiscuous Mode" beim vSwitch nicht aktiviert ist.

Am besten legt man deshalb ein neues Netzwerk (Portgruppe oder vSwitch) an aktiviert dort den Promiscuous Mode und Verbindet das Netzwerk mit der "ESX VM".

Weitere Informationen dazu in der vcritical.com: [http://www.vcritical.com/2011/07/vmware-vsphere-can-virtualize-itself/|VMware vSphere can virtualize itself + 64-bit nested guests]

DVDFab startet nicht

Bei Windows XP SP3 kann es vorkommen, dass die Software "DVDFab" nicht mehr startet und stattdessen einfach im Hintergrund des Tankmanagers bleibt.

Der Grund liegt am Treiber gewisser Grafikkarten. Reparieren lässt sich dies mit dem folgenden Registry-Fix:

[HKEY_LOCAL_MACHINESOFTWAREDVDFab]
"FabPlayDll"=dword:00000001

Ressourcen

DVDFab Forum: [http://forum.dvdfab.com/showthread.php?t=13199&page=3|DVDFab won’t open on XP SP3]

Beim upload mit TFTP kommt die Meldung: „File not found“

Der Download von Dateien per tftp klappt gut, doch wenn man etwas uploaden möchte erhält man die Meldung: "Error code 1: file not found".

Dies kommt daher, dass tftp hauptsächlich für das Herunterladen von Dateien geschaffen wurde, beispielsweise bei PXE Installationen übers Netzwerk.
Daher ist der tftp Server zurückhaltend bei Schreibzugriffen und erlaubt diese Standardmässig nur, wenn eine Datei bereits existiert (also nur das Überschreiben einer Datei), was auch die Meldung "file not found" erklärt.

Man kann dieses Verhalten jedch mit der Option "-c" (für "create") ändern, indem man diese in der Datei /etc/xinet.d/tftp Angbit:

service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -c -s /tftpboot -u tftp
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

Quellen:

tftp

MP3 recoden mit LAME

Bei MP3 Dateien erwischt man oft nicht die passende Grösse, bzw. 320CBR encodete Dateien von Audiofreaks. Das braucht für ein MP3 dann schon mal über 10MB, obwohl man den Qualitätsunterschied eines 3MB grossen files kaum heraushören würde… 😉

Doch wie encoded man diese nun einfach? Es gibt einerseits kostenpflichtige Programme wie z.B. xrecode, doch es geht auch ganz einfach kostenlos mit dem bekannten lame encoder, den sozusagen jedes kommerzielle Programm auch benutzt. 😀

Mittels folgendes kommandos kann man ein MP3 file mit den standareinstellungen von lame recoden:

lame track.mp3 track.recoded.mp3

Wer noch einige Qualitätsmerkmale angeben will, kann dies verwenden:

lame -V -q0 -b192 track.mp3 track.recoded.mp3"

Oder wer lieber eine konstante bitrate hat:

lame --cbr -b192 -q0 track.mp3 track.recoded.mp3

Unter Linux geht das sogar für ein ganzes Verzeichnis:

for track in [ `ls -1 *.mp3` ]; do lame $track recoded_${x}; done

Weitere Einstellmöglichkeiten finden sich in der lame manpage.

Related Links

lame manpage
dZone: Recode MP3
Creating quality audio-files using Windows, L.A.M.E.

Related Downlods

LAME Homepage
LAME Windows binaries