Pingu
Computer MySQL PostgreSQL Books Publications
Spielereien Kanu Business TopoDB POI Klettersteigen History TransPool Thermal Baden Brokenstuben Goldwaschen
Blog Contact
Shinguz
Google
/ch/open

Mein Computer-Sammelsurium

TOC

Content

Shared Libraries and LD_LIBRARY_PATH

See here

Zombie processes

See here

Password creator/generator

This scripts generates the most possible secure passwords for:

  • MySQL
  • Oracle
  • Linux/UNIX

But unfortunately it is not yet fully implemented :-( Also web GUI is not yet running…

Password generator Code (3.6 kByte)

Epoch - Local time translator/converter

Epoch Converter Code (1 kByte)

Loop-devices für CD-ROM Server

Ausgangslage

Da ich einige CD’s, welche ich gelegentlich brauche, und noch wesentlich mehr freien Diskplatz habe, welchen ich nicht brauche, liegt die Idee nahe, diesen zu Nutzen, und die CD’s dorthin zu kopieren um nicht Disk-Jockey spielen zu müssen. Ich baue mir also einen CD-Server. Bei ca. 80 GB freiem Diskplatz reicht das locker für ca. 100 (Daten-)CD’s.

Vorgehen

Erstellen eines ISO-Images:

$ mkisofs -v -r -R -J -o test.iso /mnt/cdrom

Mounten des ISO-Images:

von Hand:

$ mount -o ro,loop test.iso /mnt/cdrom-fake

oder

$ mount -t iso9660 -o loop test.iso /mnt/cdrom-fake

Permanent: in /etc/fstab eintragen:

...
/media/linux_user_2002.iso     /media/linux_user_2002     auto  loop,ro,user,exec  0 0
/media/linux_magazin_2001.iso  /media/linux_magazin_2001  auto  loop,ro,user,exec  0 0
...

Problem

Leider ist die Anzahl der Loop-Devices bei meiner SuSE 9.3 auf 8 beschränkt. Dies äussert sich beim Starten des Systems wie folgt: “could not find any free loop device”.

Lösung

Schritt 1: Kernel vorbereiten

Es gibt zwei Ansätze:

  1. Für Hardcore-Techies:

In /usr/src/linux/drivers/block/loop.c folgende Zeile ändern:

static int max_loop = 8;

Danach den Kernel und die Module neu kompilieren.

  1. Für Warmduscher wie mich: von Hand:

Kernel mit option max_loop=12 booten.

Kontrolle:

$ grep loop /var/log/boot.msg

<4>Kernel command line: root=/dev/hda3 vga=0x31a selinux=0 splash=silent resume=/dev/hda2 max_loop=12

oder

$ cat cmdline
root=/dev/hda3 vga=0x31a selinux=0 splash=silent resume=/dev/hda2 max_loop=12

Permanent: In /boot/grub/menu.lst die option inzufügen:

max_loop=12

Schritt 2: Weitere Loop-Devices anlegen

mknod -m 660 /dev/loop8 b 7 8
chmod 660 /dev/loop8
chown root:disk /dev/loop8
mknod -m 660 /dev/loop9 b 7 9
chmod 660 /dev/loop9
chown root:disk /dev/loop9
...

Schritt 3: System rebooten und prüfen ob alles i.O. ist

  1. Loop-Devices sind grundsätzlich vorhanden?
$ grep loop /proc/devices
7 loop
  1. Welche und wieviele Loop-Devices sind vorhanden:
$ grep loop diskstats
7    0 loop0 0 0 0 0 0 0 0 0 0 0 0
7    1 loop1 0 0 0 0 0 0 0 0 0 0 0
...
7   10 loop10 0 0 0 0 0 0 0 0 0 0 0
7   11 loop11 0 0 0 0 0 0 0 0 0 0 0
  1. Sind die Loop-Devices logisch ebenfalls vorhanden:
$ ls -la /dev/loop*
brw-rw----  1 root disk 7,  0 Mar 19  2005 loop0
brw-rw----  1 root disk 7,  1 Mar 19  2005 loop1
...
brw-rw----  1 root disk 7,  8 Mar 19  2005 loop8
brw-rw----  1 root disk 7,  9 Mar 19  2005 loop9
  1. Werden sie auch benutzt:
$ grep loop partitions
7     0      71296 loop0
7     1     645152 loop1
7     2     676288 loop2
7     3     278176 loop3
7     4     165632 loop4
7     5     163488 loop5
7     6     455840 loop6
7     7     470336 loop7
7     8     480288 loop8
  1. Welches Device hängt wo dran?
$ losetup -a
/dev/loop0: [0303]:333441 (/media/linux_user_2000.iso)
...
/dev/loop8: [0303]:333460 (/media/linux_user_2001.iso)
  1. Was wurde wo gemounted?
$ grep loop /proc/mounts
/dev/loop0 /media/linux_user_2000 iso9660 ro,nosuid,nodev 0 0
...
/dev/loop8 /media/linux_user_2001 iso9660 ro,nosuid,nodev 0 0
  1. Was meint mein Filesystem dazu:
$ df -k | grep iso
/media/ix_1999.iso      165632    165632         0 100% /media/ix_1999
/media/ix_2001.iso      163488    163488         0 100% /media/ix_2001
...

Achtung:

Nicht unnötig zuviele Loop-Devices aktivieren, da diese anscheinends Ressourcen brauchen sollen. Maximal möglich sollen 255 (256?) Loop-Devices sein.

Hint of the day

GIS