rwfus icon indicating copy to clipboard operation
rwfus copied to clipboard

Installation with Base_Directory on SD card fails

Open Merith-TK opened this issue 1 year ago • 2 comments

(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?

Merith-TK avatar Sep 09 '22 18:09 Merith-TK

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

image

Merith-TK avatar Sep 09 '22 18:09 Merith-TK

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

ValShaped avatar Sep 10 '22 20:09 ValShaped

This should be fixed on dev branch as of this morning.

ValShaped avatar Nov 06 '22 09:11 ValShaped

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!

ValShaped avatar Feb 06 '23 09:02 ValShaped