rwfus
rwfus copied to clipboard
Installation with Base_Directory on SD card fails
(deck@steamdeck rootfs)$ mount | grep mmc
/dev/mmcblk0p1 on /run/media/mmcblk0p1 type ext4 (rw,noatime)
Instead of relying on what rwfus does in $HOME
why not allow the overlay files to be on an external device?
hmm
(deck@steamdeck rwfus)$ sudo ./rwfus
Creating overlays for /usr /etc/pacman.d /var/lib/pacman /var/cache/pacman /opt:
1. Generating directories
2. Generating units
3. Copying units to /etc/systemd/system
4. Enabling units
Error when enabling units. See /tmp/rwfus.UY3U.log for information.
5. Storing configuration
Done!
× etc-pacman.d.mount - Rwfus: /etc/pacman.d
Loaded: loaded (/etc/systemd/system/etc-pacman.d.mount; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2022-09-09 11:22:36 PDT; 36ms ago
● opt.mount - Rwfus: /opt
Loaded: loaded (/proc/self/mountinfo; enabled; vendor preset: disabled)
Active: active (mounted) since Fri 2022-09-09 10:44:22 PDT; 38min ago
● rwfus.target - Carry Pacman across SteamOS updates!
Loaded: loaded (/etc/systemd/system/rwfus.target; enabled; vendor preset: disabled)
Active: active since Fri 2022-09-09 11:19:55 PDT; 2min 40s ago
× usr.mount - Rwfus: /usr
Loaded: loaded (/etc/systemd/system/usr.mount; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2022-09-09 11:22:36 PDT; 41ms ago
× var-cache-pacman.mount - Rwfus: /var/cache/pacman
Loaded: loaded (/etc/systemd/system/var-cache-pacman.mount; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2022-09-09 11:22:36 PDT; 36ms ago
× var-lib-pacman.mount - Rwfus: /var/lib/pacman
Loaded: loaded (/etc/systemd/system/var-lib-pacman.mount; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2022-09-09 11:22:36 PDT; 33ms ago
For more information run 'systemctl status [unit.name]'
Logfile saved to /tmp/rwfus.UY3U.log
(deck@steamdeck rwfus)$ mount | grep mmc
/dev/mmcblk0p1 on /run/media/mmcblk0p1 type ext4 (rw,noatime)
https://0x0.st/ofxD.UY3U.log
This happens for the same reason Rwfus fails to install on reimaged Steam Decks: Valve formats the SD card/internal storage with the ext4 casefold
option enabled, which allows the contents of a directory to be considered case-insensitive. This sets some flags in the directory's dentry. Overlayfs checks the dentry flags, considers them "weird", and will immediately fail to mount and produce a bogus error.
I'm working on it😋
Additionally, Rwfus will read a configuration file which defines the paths, etc. that Rwfus will use during the install or update process.
You can generate a sample config by running the command ./rwfus -g
or ./rwfus --gen-config
This should be fixed on dev branch as of this morning.
Update on this issue: Due to unfortunate circumstances regarding boot order, it's currently not possible to put Base_Directory on the SD card, and keep all other settings intact
However, I have verified that, as of 46a8c4b, it IS possible to put only the Service_Directory on the internal storage, and have the Disk_Image_Path on the SD card.
As for whether it's a good idea to put part of your root filesystem on a removable storage medium, I leave that up to you. However, I consider this compromise good enough, and I hope you'll see it that way as well!