diff options
author | jbranso@dismail.de <jbranso@dismail.de> | 2024-05-31 15:06:43 -0400 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2024-06-17 00:50:19 +0200 |
commit | b9c3f3ae29a396a33d1f40dce439fe11ace2f3c4 (patch) | |
tree | f6085165d98209af411978e28d89c0174a599e01 | |
parent | e9034d566710efcc3c78aa9cad144f81f5546736 (diff) |
add example of how to create a custom filesystem.
Hey Samuel, this is another modification of a previous commit.
Hopefully this addresses your critiques. I also added in
"-E root_owner=$UID:0" to some other files, where I thought it
was appropirate. Hopefully I didn't make any mistakes. I did test
this by the way. I was able to get ~/silly/silly1 to be two
nested ext2fs translators. All without having to execute "sudo"!
* hurd/translator/ext2fs.mdwn: explain how to create a custom
filesystem, and mentioned that the current limit for how many
nested ext2fs filesystems there could be...is 32.
* faq/still_useful: sbin/mk2fs dummy.fs -> sbin/mk2fs -E root_owner=$UID:0 dummy.fs
* hurd/documentation/translators.html: as above.
* open_issues_/64-bit_port.mdwn: as above
Message-ID: <20240531191015.8761-1-jbranso@dismail.de>
-rw-r--r-- | faq/still_useful.mdwn | 2 | ||||
-rw-r--r-- | hurd/documentation/translators.html | 2 | ||||
-rw-r--r-- | hurd/translator/ext2fs.mdwn | 51 | ||||
-rw-r--r-- | open_issues/64-bit_port.mdwn | 2 |
4 files changed, 54 insertions, 3 deletions
diff --git a/faq/still_useful.mdwn b/faq/still_useful.mdwn index 82e03078..575781a1 100644 --- a/faq/still_useful.mdwn +++ b/faq/still_useful.mdwn @@ -39,7 +39,7 @@ various servers are designed for this sort of modification. > personal filesystem > > $ dd < /dev/zero > myspace.img bs=1M count=1024 -> $ /sbin/mke2fs myspace.img +> $ /sbin/mke2fs -E root_owner=$UID:0 myspace.img > $ settrans myspace /hurd/ext2fs myspace.img > $ cd myspace diff --git a/hurd/documentation/translators.html b/hurd/documentation/translators.html index e455f730..348774d1 100644 --- a/hurd/documentation/translators.html +++ b/hurd/documentation/translators.html @@ -212,7 +212,7 @@ I recommend that you start by reading the <code>/bin/mount</code> command, it is only a small script. Because setting filesystem translators is similar to mounting partitions, you can easily grasp the concept this way. Make a file system image with <code>dd if=/dev/zero of=dummy.fs bs=1024k -count=8; /sbin/mke2fs dummy.fs</code> and "mount" it with <code>settrans -c dummy +count=8; /sbin/mke2fs -E root_owner=$UID:0 dummy.fs</code> and "mount" it with <code>settrans -c dummy /hurd/ext2fs `pwd`/dummy.fs</code>. Note that the translator is not started yet, no new <code>ext2fs</code> process is running (verify with <code>ps Aux</code>). Check that everything is correct using <code>showtrans</code></p> diff --git a/hurd/translator/ext2fs.mdwn b/hurd/translator/ext2fs.mdwn index 957b9c13..9be6c885 100644 --- a/hurd/translator/ext2fs.mdwn +++ b/hurd/translator/ext2fs.mdwn @@ -32,6 +32,57 @@ Extend ext2fs to support 64bit time. [[!inline pagenames=faq/2_gib_partition_limit raw=yes feeds=no]] +## Create your own custom ext2fs + + $ dd if=/dev/zero of=silly.fs bs=1024k count=8 + $ /sbin/mkfs.ext2 -E root_owner=$UID:0 silly.fs + $ settrans -c silly /hurd/ext2fs `pwd`/silly.fs + $ ps -e | grep silly # ext2fs has not started + $ ls silly + $ ps -e | grep silly | awk '{ print $6 " " $7 }' + /hurd/ext2fs /home/joshua/silly.fs + $ cd silly + $ echo 'hello' > hello.txt + $ mkdir silly-dir + $ cd .. + $ fsysopts silly + /hurd/ext2fs --writable --relatime --no-inherit-dir-group /home/joshua/silly.fs + $ fsysopts silly --readonly # stop writes to the filesystem + $ fsysopts silly --writable # let writes again + +Try to make the filesystem read-only with fsysopts. Note how further +write attempts fail now. Try to kill the active translator with +settrans -g. + +You could go crazy even! Why not make something like this: + + ~/silly <--> silly.fs + | \ + | \ + | \ + | \ + | \ + \|/ \/ + silly1 <-> silly1.fs + ... + + /hurd/joshua/silly/silly1/silly2/silly3/silly4 + +Each sillyN is another ext2fs filesystem! Make sure that as N gets +bigger sillyN.fs gets smaller. Let us know in the `#hurd` [irc +channel](https://web.libera.chat/) how "silly" you are. :) + +The current record is 2! + + $ ps -e | grep silly | awk '{print $6 " " $7}' + /hurd/ext2fs /home/joshua/silly.fs + /hurd/ext2fs /home/joshua/silly/silly1.fs + +What is the limit? How many nested ext2fs translators can you have? +You could have 32 ["silly" +directories](https://logs.guix.gnu.org/hurd/2024-05-31.log#005021). +That's very silly! + ### Ognyan's Work to allow ext2 to surpass the 2 GiB limit * Ognyan Kulev, [[*Supporting Large ext2 File Systems in the diff --git a/open_issues/64-bit_port.mdwn b/open_issues/64-bit_port.mdwn index 77b0632e..75756199 100644 --- a/open_issues/64-bit_port.mdwn +++ b/open_issues/64-bit_port.mdwn @@ -86,7 +86,7 @@ To make a bootable system we really better make the disk image partitioned, and # create a new primary partition spanning the whole disk: n p and just accept the defaults, and finish with w settrans -ca disk /hurd/storeio -T typed file:disk.img settrans -ca disk1 /hurd/storeio -T typed part:1:file:disk.img - /sbin/mke2fs disk1 + /sbin/mke2fs -E root_owner=$UID:0 disk1 settrans -ca chroot-hurd-amd64 /hurd/ext2fs disk1 (here we assume that fdisk puts the partition at sector 2048, that's indeed the |