summaryrefslogtreecommitdiff
path: root/hurd/translator/ext2fs.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'hurd/translator/ext2fs.mdwn')
-rw-r--r--hurd/translator/ext2fs.mdwn68
1 files changed, 60 insertions, 8 deletions
diff --git a/hurd/translator/ext2fs.mdwn b/hurd/translator/ext2fs.mdwn
index 81e54dff..9be6c885 100644
--- a/hurd/translator/ext2fs.mdwn
+++ b/hurd/translator/ext2fs.mdwn
@@ -22,16 +22,68 @@ License|/fdl]]."]]"""]]
* [[internal_allocator]]
+## Current Limitations
-## Large Stores
-
-The `ext2fs` translator from the upstream Hurd code base can only handle file
-systems with sizes of less than roughly 2 GiB.
+### Use 64 bit time by default
-[[!tag open_issue_hurd]]
+Extend ext2fs to support 64bit time.
+## Large Stores
-### Ognyan's Work
+[[!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
Hurd*|ogi-fosdem2005.mgp]], 2005, at FOSDEM
@@ -40,8 +92,8 @@ systems with sizes of less than roughly 2 GiB.
* <http://kerneltrap.org/node/4429>
-Ognyan's patch lifts this limitation (and is being used in the
-[[Debian_GNU/Hurd_distribution|running/debian]]), but it introduces another
+Ognyan's patch lifted this limitation (and is being used in the
+[[Debian_GNU/Hurd_distribution|running/debian]]), but it introduced another
incompatibility: `ext2fs` then only supports block sizes of 4096 bytes.
Smaller block sizes are commonly automatically selected by `mke2fs` when using
small backend stores, like floppy devices.