I really strongly prefer to use BTRFS with all my Linux installs whenever I can. (why? Because I like filesystem snapshots and transparent file compression.) I installed Clear Linux on EXT4 and then used btrfs-convert to change it to BTRFS; I used “btrfs balance start -mconvert=dup /” to set up duplicate file metadata for reliability purposes; I rsync’d the files into @ and @home subvolumes; I added an /etc/fstab file to mount the subvolumes in the correct folders; and I mounted the boot partition and edited the .conf files in /boot/loader/entries to include the arguments “ro rootflags=subvol=@”. All of this works fine, except for two issues:
Partway through the hardware detection part of the bootup sequence, the bootup will hang for about a minute before proceeding to the login screen. There are no messages displayed that give me any idea what the computer is working on, or waiting for, during this time.
When I updated the system a couple days ago, my edits to the /boot/loader/entries/*.conf files were overwritten and I had to manually edit them on another system again before Clear Linux would boot.
Does anyone have any idea what might be causing issue #1, and does anyone know how I can modify the code used to configure the /boot/loader/entries/*.conf files so it doesn’t overwrite existing entries?
on clr-boot-manager manpage stated that you need to place it on /etc/kernel/cmdline.d
A set of files that will be used to modify the kernel commandline.
The files can also be used to mask the vendor cmdline if the file‐
name matches a vendor configuration file and is linked to
/dev/null. The vendor configuration files are /usr/lib/kernel/cmd‐
line‐* and /usr/share/kernel/cmdline.d/*.conf.
The files should be in plain text format and each line will be ap‐
pended directly to the kernel commandline.
A set of files that will be used to modify the kernel commandline
by removing string matches from the final consolidated commandline
(removal happens after the content from cmdline and cmd‐
line.d/*.conf files are added). The matches are made on a per line
basis so multiple different removals should be placed on their own
line or file.
Okay, I’m reading the manpage, but do they have any templates or samples for what the text inside these files should look like?
Also, do you have any idea why booting from a BTRFS subvolume would hang for a minute or so while booting from the BTRFS main volume wouldn’t?
Bump. Does anyone have samples for what the files in /etc/kernel/cmdline.d should look like?
Type in a .conf file, add the value you need
// run as sudo
echo psi=1 >> /etc/kernel/cmdline.d/psi.conf
Okay. I also need to modify some existing values, not just add new ones. I need to replace “rw” with “ro”, because it’s standard practice to access the true root of a BTRFS filesystem in read-only mode and then mount the subvolumes as read-write. How do I do this?
based on manpage, find options used for your kernel at
rw is a single line in the current latest, you can then try something similar
echo ro >> /etc/kernel/cmdline.d/ro.conf
echo rw >> /etc/kernel/cmdline‐removal.d/rw.conf
Oh. Somehow I was imagining something more complicated, involving RegEx or something like that. Is it really that simple?