Erzeugen eines jfs2-Filesystems in einer Datei

In diesem Beitrag soll das Erzeugen eines jfs2-Filesystems in einer Datei beschrieben werden. Gelegentlich gibt es Situationen, in denen man ein Filesystem braucht, man aber nicht die Möglichkeit hat ein Filesystem in einem Logical Volume zu verwenden. Falls dies der Fall sein sollte, existiert eine Möglichkeit dennoch zu einem Filesystem zu kommen, indem das Filesystem in einer Datei erzeugt wird.

Zunächst muss man eine Datei anlegen, in welcher das jfs2-Filesystem angelegt werden soll. Wobei diese auch in einem per NFS gemounteten Filesystem liegen könnten:

# lmktemp /path/to/file 1000m

Hier kann man jedoch nicht g für GB angeben. Die Datei kann natürlich auch mit anderen Kommandos (z.B. dd) erzeugt werden. Damit man auf die Datei zugreifen kann, muss nun aber ein Gerät für diese Datei erzeugt werden. Unter AIX gibt es hierfür den Gerätetyp loopback. Standardmäßig werden diese Geräte mit loop und einer fortlaufenden Nummer benannt.

Mittels lsdev kann leicht überprüft werden, ob man schon ein solches Device hat:

# lsdev -l loop\*

Mit dem Kommando /usr/sbin/loopmount kann man dann ein solches Gerät erzeugen:

# loopmount -i /path/to/file

Jetzt sollte es damit auch ein neues loopback Device geben:

# lsdev -l loop\*
loop0 Available  Loopback Device

# lsattr -El loop0
filename  /tmp/bigfile Name of the image file to be associated with the device True
temporary yes          Determines if the device should be removed at boot time True

Nun kann auf dem loopback Device ein jfs2-Filesystem erzeugt werden:

# mkfs -V jfs2 -o log=INLINE /dev/loop0
mkfs: destroy /dev/loop0 (y)? y
logform: Format inline log for  <y>?y
File system created successfully.
1015572 kilobytes total disk space.
Device /dev/loop0:
Standard empty file system
Size:           2031144 512-byte (DEVBLKSIZE) blocks

Das erzeugte Filesystem kann nun gemountet werden. Das Kommando mfks darf nicht noch einmal ausgeführt werden, wenn die Datei schon ein jfs2-Filesystem beinhaltet. Zum Mounten eines Filesystems in einer Datei gibt es das spezielle Kommando loopmount:

# loopmount -l loop0 -o "-V jfs2 -o log=INLINE" -m /mnt

Alternativ kann das Filesystem auch mit dem Kommando mount gemountet werden:

# mount -V jfs2 -o log=INLINE /dev/loop0 /mnt

Das Filesystem kann nun normal benutzt werden.

# df -g /mnt
Filesystem    GB blocks      Free %Used    Iused %Iused Mounted on
/dev/loop0         0.98      0.97    1%        4     1% /mnt

Das Filesystem kann ganz einfach wieder entfernt werden, wenn es nicht mehr benötigt wird:

# loopumount -l loop0 -m /mnt

Das Filesystem wird ausgehangen und das loopback Device wird gelöscht (falls das Attribut temporary auf yes gesetzt ist, das ist der Default für loopback Devices).

Die Datei muss aber manuell gelöscht werden, wenn diese nicht mehr benötigt wird:

# rm /path/to/file

Wir hoffen dieser Beitrag über das Erzeugen eines jfs2-Filesystems in einer Datei war sowohl informativ als auch hilfreich!

 

%d Bloggern gefällt das: