Giselher's Blog RSS Feed

Status & storeio – My new favorite translator

Posted on by giselher This entry was posted in ArchHurd, GNU/Hurd and tagged , , , , , . Bookmark the permalink.

Hy guise,

I didn’t worked much on PHP and other server technologies, because the live cd is on its way and I did update some more or less essential packages, which are used for the live cd or are popular by the users. By the way! I am so happy that I finally fixed the python package. Python worked for me, because I accidently install it to root and not to the pkgdir and I thought that I uploaded the fixed package long ago. But then a friend of barrucadu, who wanted to build namcap to test his packages, told me that python still doesn’t work. After dowloading some patches from debian we now have both, a working python build and namcap in the AUR for now.

Package Status

There is also a new syslog-ng package in testing, which does not depend on pidof. Due to the lack of a working /proc implementation pidof does not work. But fear not, work is going on the source code of procfs.  We sooner or later got a working /proc and all the nice things that are depending on it, like top.

To be more developer friendly for future hurders,  I added cvs and mercurial. We now cover almost every VCS, except for Subversion, which will surely come someday (if I have enough time).

Wiki Status

I also change some wiki pages, especialy the translator page, which I will quote below. This pages gives an overview about the most important ones for end user, if there are end users at the moment. Please have a look if you like. http://wiki.archhurd.org/wiki/Translators

I will make this post a bit longer than, because I didn’t post yesterday

storeio – A flexible block device translator

I’d like to present my new favorite translator, by the name storeio.

storeio is a translator which creates a block device from the given file. It also supports compressed files with gunzip and bunzip2 but I recommend not to use any compression, didn’t work as expected and takes forever to mount. You sure are asking yourself what you can do with a block device? Well, once created you can created a filesystem on it and mount it on a directory and put data into it. Because of the fact that the file is now a block device, you’re able to work with filesystem tools, like mkfs and fsck, on it. You can also create a ramdisk witk it.

Enough wtih the talk, lets show some examples. From here on I will quote the wiki page about translators. Sorry for the format. Look at our wike page if you like to see it in a better format.

storeio

storeio is like losetup on linux, but with more advantages. It also supports compression with gzip and bzib2 or normal files.

It creates a block device with the given file or arguments.

 settrans -ca loop0 /hurd/storeio -T file FILE
 settrans -ca loop1 /hurd/storeio -T gunzip FILE.gz

ATTENTION: storeio can not size the given file. A possibility to create a file with a given size is to use dd.

 dd if=/dev/null of=FILE bs=42MB

This will create an empty file with the size of 42MB. You can now work with the new block device. You can use it as temporary filesystem (ramdisk) or as portable filesystem.

ramdisk
 settrans -ca ramdisk0 /hurd/storeio -T copy zero:32M
 mkfs.ext2 -F -b 4096 ramdisk0
 settrans -ao ramdisk0 /hurd/ext2fs.static ramdisk0

First we create a buffer with copy and getting the size with zero. (Just like dd, but without invoking a file) Then we create the filesystem on our blockdevice and mounting it with ext2fs. The argument -o (orphan) replaces the previous translator with a new one without forcing it away.

portable vfs

The following example shows how to create virtual filesystems in a file.

 dd if=/dev/zero of=your.img bs=SIZE
 settrans -ca loop0 /hurd/storio -T file your.img
 mkfs.ext2 -F -b 4096 loop0
 settrans -ca mount /hurd/ext2fs.static loop0

Fist create a file with any size and create the block device with storeio then create the filesystem and mount it.

You can also lay the translators on top of each other.

 settrans -a your.img /hurd/storeio -T file your.img
 settrans -ao your.img /hurd/ext2fs your.img

The file your.img is now a directory and you can use it as such.

 cp your things your.img/
 ls your.img/things/

To unmount the filesystem.

 settrans -g your.img

ATTENTION: I noticed that if you lay one translator onto another you can only remove the one on top. I don’t know if this is a feature or bug, but after that procedure you only need to use ext2fs to mount the image, which is pretty handy after all.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Navigation

Archives

Meta