summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjbranso@dismail.de <jbranso@dismail.de>2024-05-31 15:06:43 -0400
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2024-06-17 00:50:19 +0200
commitb9c3f3ae29a396a33d1f40dce439fe11ace2f3c4 (patch)
treef6085165d98209af411978e28d89c0174a599e01
parente9034d566710efcc3c78aa9cad144f81f5546736 (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.mdwn2
-rw-r--r--hurd/documentation/translators.html2
-rw-r--r--hurd/translator/ext2fs.mdwn51
-rw-r--r--open_issues/64-bit_port.mdwn2
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