Linux: SATA Rescan


Ist natürlich nicht optimal, und eigentlich will man einen SATA-Controller, das das mit dem Hotswapping richtig hinbekommt. Aber manchmal kommt man eben doch in die Verlegenheit, im laufenden Betrieb nach neuen Festplatten suchen zu müssen. Dann hilft unter Linux dieser Befehl:

echo "0 0 0" >/sys/class/scsi_host/host<n>/scan

<n> kann man durch etwas rumwühlen in /proc/scsi/scsi rausfinden oder zumindest mal raten.



UUID einer Partition unter Linux bestimmen


Die UUID einer Partition unter Linux bestimmt man mit dem Befehl “blkid”:

root@ariane:~# blkid /dev/md2
/dev/md2: UUID="de9657a6-f38a-4a6d-a671-b9ce64a955e4" TYPE="crypto_LUKS"


Encrypted Root mit mehreren Devices unter Ubuntu


Nachdem es gestern einen Satz neue Festplatten gab, hab ich mich endlich mal entschieden, mein Truecrypt Setup zu Gunsten von dm-crypt mit Luks zu beerdigen. Im Rahmen dieser Aktion sollte auch gleich die Root-Partition mit Verschlüsselt werden. Im Prinzip ist das ja kein Problem, wenn man ein Initrd verwendet. Für Ubuntu kann in dem Fall die folgende Anleitung als Quelle dienen:
https://help.ubuntu.com/community/EncryptedFilesystemOnIntrepid

Allerdings spielt Ubuntu nicht mehr so ganz mit, sobald mehrere physical volumes ins Spiel kommen. Darüber hinaus verträgt sich Plymouth nicht so ganz mit der Passwortabfrage. Nach etwas rätseln hab ich mich dann entschlossen, die entsprechenden Vorkehrungen von Hand in das Initrd einzubauen. Konkret muss die Datei /etc/initramfs-tools/scripts/local-top/cryptoroot folgendermaßen aussehen:

EREQ="udev"

prereqs()
{
    echo "$PREREQ"
}

case $1 in
  # get pre-requisites
  prereqs)
    prereqs
    exit 0
  ;;
esac

/bin/loadkeys -q /etc/console-setup/boottime.kmap.gz
modprobe -qb dm_crypt
modprobe -qb sha256_generic

# The following command will ensure that the kernel is aware of
# the partition before we attempt to open it with cryptsetup.
/sbin/udevadm settle

if grep -q splash /proc/cmdline; then
    /bin/chvt 1
fi

## Ab hier Änderungen
status=1
while [ $status != 0 ] ; do
    password=`plymouth ask-for-password --prompt "Password?"`
    echo $password | cryptsetup luksOpen /dev/md28 lvm-pv0
    echo $password | cryptsetup luksOpen /dev/md27 lvm-pv1
    echo $password | cryptsetup luksOpen /dev/md26 lvm-pv2
    status=$?
done

Geändert haben sich hierbei die letzten 9 Zeilen, bei denen in einer Schleife so lange versucht wird, die dm-crypt-Devices zu öffnen, bis dies erfolgreich war. Hierbei wird die Passwort-Abfrage von Plymouth verwendet. Natürlich müssen die Passwörter für alle Devices die selben sein, damit dies funktioniert. Außerdem muss obiges Script noch an die lokalen Gegebenheiten des Lesers angepasst werden.


I, Blog is proudly powered by WordPress and themed by Mukkamu