August, 2011

root die Schreibrechte entziehen

Montag, August 22nd, 2011

Auf einem ext2/ext3/ext4 basierende Dateisystem kann man root die Schreibrechte für einzelne Dateien entziehen.

Nötig war das für meinen Router der am externen Netz eine per DHCP zugewiesene IP bekommt und damit immer die /etc/resolv.conf überschreiben hat. Da ich aber auf dem Router einen bind9 laufen lasse, sollten die Lokalen DNS anfragen an die 127.0.0.1 weitergeleitet werden.

chattr +i /etc/resolv.conf

Um das ganze wieder rückgängig zu machen verwendet man die Option -i.

Quelle: wiki.ubuntuusers.de

mdadm: /dev/md0 assembled from 2 drives – not enough to start the array

Mittwoch, August 3rd, 2011

Beim starten des md Raid waren 2 Platten beim Starten nicht hochgekommen.

# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
# mdadm --assemble /dev/md0 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2
mdadm: cannot open device /dev/sdb2: Device or resource busy
mdadm: /dev/sdb2 has no superblock - assembly aborted

Sie wurden bereits benutzt. Allerdings nicht von eine Userspace Programm / Mount wie fuser „nicht anzeigt“.
# fuser -v /dev/sdb2

An dieser Stelle haben wir vermutet das es sich um ein Fake Raid handelt. Also mal einen Blick in die device mapper blockdevices werfen…
# dmsetup table
isw_ddjcbgeaib_Volume12: 0 1875395970 linear 252:0 78124095
isw_ddjcbgeaib_Volume11: 0 78124032 linear 252:0 63
isw_ddjcbgeaib_Volume1: 0 3907039744 striped 2 256 8:16 0 8:48 0

# ls -l /dev/sdb
brw-rw---- 1 root disk 8, 16 2011-08-03 23:32 /dev/sdb

In der Tat /dev/sdb wird von device mapper verwendet.

Um das Fake Raid aufzulösen haben wir die brachial Methode genommen. Hier wird mit dem Devicemapper alle Einstellungen Deaktiviert. Somit sind die platten wieder freigegeben.

# dmsetup remove_all
# dmsetup table
No devices found

Anschießend konnte das md Software Raid wieder ordentlich gestartet werden
# mdadm --assemble /dev/md0 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2
mdadm: /dev/md0 has been started with 4 drives.

Im Endeffekt hat auf die Platten ein „Facke Raid“ mittels dmraid zugegriffen. Was auch erklärt warum die „Partitionen für den Kernel verschwunden“ waren.

apt-get autoremove dmraid

Partitionen für den Kernel verschwunden

Mittwoch, August 3rd, 2011

Partitionen für den Kernel Verschwunden
Sowohl mit partx als auch mit fdisk -l und anderen Tools konnte man die Partitionen der Platte sehen.
# partx -l /dev/sdb
# 1: 63- 78124094 ( 78124032 sectors, 39999 MB)
# 2: 78124095-1953520064 (1875395970 sectors, 960202 MB)
# 3: 0- -1 ( 0 sectors, 0 MB)
# 4: 0- -1 ( 0 sectors, 0 MB)

Leider Tauchten sie aber nicht im /sys auf.

# tree /sys/ | grep sdb
│   ├── sdb -> ../devices/pci0000:00/0000:00:1f.2/host2/target2:0:1/2:0:1:0/block/sdb
│   │   ├── sdb -> ../../devices/pci0000:00/0000:00:1f.2/host2/target2:0:1/2:0:1:0/block/sdb
│   │   ├── 8:16 -> ../../devices/pci0000:00/0000:00:1f.2/host2/target2:0:1/2:0:1:0/block/sdb
│   │   │   │   │   │   │   └── sdb
│   │   │   │   ├── sdb -> ../../../../pci0000:00/0000:00:1f.2/host2/target2:0:1/2:0:1:0/block/sdb

Nach dem wir partprobe ausgeführt haben waren die Platten wieder da.
#partprobe