The small linux problem thread

Sounds like you are running out of memory somewhere. How much memory is your current system? I recommend running htop in order to keep track of your memory.

I wanna change some mountpoints and use other (new) drives for them.

What is best practice for doing this? Is it as simple as using cp copying everything to new drive, unmount and mount with the new drive and changing /etc/fstab accordingly? Do I do this during normal runlevel aka boot up as normal or in an offline state (e.g. ISO live environment)?

I never unmounted things like /home /var or /tmp before and imagine that running processes might get very angry

Iā€™ll see if monitoring it shows something, although i run 32Gig of ram and it happens during lightweight tasks like watching videos so not sure.

Of course, youā€™ve got a backups of everything you donā€™t want to lose, and have a tested restore from backup procedure :wink: and you can adapt it.

For the root volume of your OS, booted from somewhere else such as an ISO is a good idea, but when Iā€™ve had to copy from the running OS, itā€™s worked. Using a snapshot (on file systems that have such) is next best, then itā€™s a bit like booting from a system that had the power go down suddenly.

As for copying, I suggest sudo rsync -axHAWXS. A plain cp or file manager copy will mess up things, and rsync should know how to copy an OS properly, and will restart from where it got to if necessary.

2 Likes

I have ran live OS backups with rsync, then recreated them on other boxes by formatting the disk, rsyncing the data, booting to a live usb, chrooting and reinstalling the bootloader.

If your OS is up and running and you want to do that on the same system, then you can follow the same procedure I did, up to and including modifying fstab, until it comes to installing the bootloader, which may interfere with your current system if it detects it. Once youā€™re at that step, poweroff, unplug your original drive and use a live usb to chroot and install the bootloader. If you have your bootloader on another device, like a USB stick or a microsd card, that can work with just clonezilla and you just swap the drives. Some argue this is more secure, because you can keep your bootloader in your pocket.

I found that the easiest method, without involving all kinds of hacks in chroot, that even newbs can do, is to use clonezilla to clone a disk to another, then an Ubuntu live desktop to expand the partitions to the size of the disk with gparted. Works best for ext4 and xfs formatted partitions, but if you are using LVM, expanding it is easy too.

But if you use LVM on LUKS or just any plain filesystem on LUKS, you may need to luks grow cryptvolume or something, I forget how that is achieved. Still doable though.

I havenā€™t tested moving from ext4 to zfs, but it should be doable as long as the os you copy over has the zfs kernel module, you just have to change the bootloader.

I ended up doing it with rsync, editing fstab and reboot. Operation success without problems. I always have everything replicated to my server, also via rsync (wanna do zfs send/receive via BTRFS!).

Easy.

1 Like

If you do that, be aware that the partitions have the same UUIDs and duplicated UUIDs cause confusion for the computer and user both. Before rebooting either remove one drive or use a tool like gparted to write new UUIDs.

4 Likes

I forgot to mention to remove the source drive once you boot into the Ubuntu live desktop. Do not change the UUIDs, that way, you donā€™t have to mess with neither fstab, nor the bootloader. Once you grow the fs, youā€™re good to go. Just donā€™t plug the source drive to this box until you either format it, or change its uuids.

1 Like

'ello!

I have been going insane trying to fix this. I have made a service file, it wonā€™t start. I set a script on autostart. Wonā€™t start.

So I use virtual audio cables, thereā€™s a script that creates them, and I need it to start with the regular boot, and not with every manual interaction.

Should I create a bashfile, that starts the script at bootup?

[FSTAB AUTOMOUNT]

I have multiple m.2ā€™s and hddā€™s that I have to mount manually at every boot. Iā€™m not really that good at fstab settings. Is there maybe a good guide out there, that can tell me which settings would be a good thing and which would be a bad one.

Thanks!

Here is the ArchWiki. I think it is a good place to start.
https://wiki.archlinux.org/title/Fstab

2 Likes

Well thereā€™s 2 ways. Either put it in your ~/.profile, or you put it where it actually belongs, which is your PulseAudio config file. Itā€™s in ~/.config/pulse/default.pa.

On another note: if youā€™re running a halfway current distro this wonā€™t work anymore because most distros switched to PipeWire by default.

Also, personally I do this with a combine-sink instead because it allows to specify another audio device where the audio is routed to. That way you can record the separate audio tracks but also hear them combined on your physical speakers.
That also means I can have them active and use them all the time instead of relying on OBS or another software to do the monitoring. That aside, OBS especially on PulseAudio has some quirks with the monitoring and it drifts off over time, meaning you will have a very noticeable monitoring delay in some cases. That is not the case with a combine-sink because itā€™s handled internally by PulseAudio (or PipeWire).

2 Likes

Thanks, I played with it some more but no luck. I came across this link regarding dracut not having dm-snapshot support by default unless a snapshot existed on the system at the time initramfs was created by dracut.

So I added add_drivers+=" dm-snapshot " to /etc/dracut.conf.d/0-lvm_luks.conf, and used xbps-reconfigure -f linux6.1 to recreate my unified kernel with embedded intiramfs, and it still doesnā€™t work (even with dracut -f option, config snippets below). I then inspected the separate intiramfs that was generated and it appears to have the dm-snapshot module.

lsinitrd /boot/initramfs-6.1.14_1.img | grep dm-snapshot
-rw-r--r--   1 root     root        32846 Feb 27 09:21 usr/lib/modules/6.1.14_1/kernel/drivers/md/dm-snapshot.ko.zst

Whenever I create a snapshot of root LV, then immediately reboot and enter my LUKS passphrase, it hangs for a while then says ā€œdracut warning: could not bootā€, then drops into dracut recovery shell. Iā€™ve attached relevant output from rdosreport.txt log it mentions.

rdosreport.txt:

[  140.776115] dracut: Can't process LV voidvg/preup: snapshot target support missing from kernel?
...
[  204.754769] dracut Warning: Could not boot.
[  204.756388] dracut Warning: "/dev/disk/by-uuid/a64b79f7-9e1c-09f7-dab7-8ea3601caf8f" does not exist

other configs:

/etc/dracut.conf.d/0-lvm_luks.conf:
kernel_cmdline=" nouveau.modeset=0 loglevel=4 root=UUID=a64b79f7-9e1c-09f7-dab7-8ea3601caf8f rd.dm=0 rd.md=0 rd.luks.allow-discards rd.lvm.vg=voidvg rd.luks.uuid=7db2b705-20bd-4f27-b9f1-43f1592d0af7 init_on_free=1 "
add_dracutmodules+=" lvm "
add_drivers+=" dm-snapshot "
uefi_stub="/usr/lib/gummiboot/linuxx64.efi.stub"

/etc/default/dracut-uefi-hook:
CREATE_UEFI_BUNDLES=yes
DRACUT_OPTIONS=" -f -N --no-hostonly-cmdline "
UEFI_BUNDLE_DIR="/refind/EFI/Void/"

FSTAB:
/dev/mapper/voidvg-swap	none		swap	sw			0 0
/dev/mapper/voidvg-root	/		ext4	defaults,noatime	0 1

Agreed. i installed the debian gnome and got stuck at a grub prompt and the livecd had display tearing the first 3 times i loaded it.

Thatā€™s pretty unambiguous. Even if the dm-snapshot.ko in the initrd, itā€™s either not be getting loaded before it is needed, or thereā€™s something else wrong like other missing symbols or similar.

You can boot into the initrd shell with rd.break or init=/sysroot/bin/sh kernel boot args, and from that command-line try loading the module, confirm it loads, and step through the init process yourself manually.

Thank you rcxb and ThatGuyB for all the help!

It would appear that the issue is solved (in my particular configuration) by simply changing add_drivers to force_drivers+=" dm-snapshot " in /etc/dracut.conf.d/ conf file.

I can now test system changes and updates, conveniently, without fear.

Why is HDR and VRR hard on Linux?

Also, I just got back to Windows 11 and while they are just as scummy as before, and I feel like their Tiling overtook, at least GNOME 43ā€™s implementation. I canā€™t say if it is actually retarded or not since my install a few days ago, but at least at first glance it feels better.

2 Likes

Any linux wizards have tips for managing multiple similar yet different linux installations?

Iā€™m enjoying Void Linux with the freedom to configure minimal systems however one pleases.

However, running it on three machines (NAS/livingroom-media, desktop, laptop), Iā€™m finding it laborious to maintain all these systems. There are commonalities (i3wm, pulseaudio w/ ladspa DSP, etc) but also areas where the configurations must diverge due to differing hardware, usage, etc.

Is there a best approach to making changes that affect all system configurations, and also changes unique to just one device?

For example, I may want to change something in the i3wm config that should apply to all machines, while also retaining portions of that same config that are unique to certain machines.

ArcoLinux that I use, still use PulseAudio as default.

I have noticed the delay in audio when it comes to OBS and PA, itā€™s a hazard to be honest, sometimes I just reroute the audio from the virtual cable to hardware outputs instead, since it works. I kind of use virtual speaker for applications like spotify though.

Can you guide me towards this ā€œCombine-Sinkā€ that you are talking about?

This is the script that I use for the virtual cables btw.

#This is a script to load to virtual items in Linux
# 1 a virtual microphone that can be used in Zoom / Jitsi etc
# 2 A monitor device that can used to group different sources, like OBS
# 3 A remap to route the monitor to the mic
# 4 Finally a loop back audio device that can used to hear the stream. 
# note there is a delay, but if using OBS can fixed in the advanced audio properties. 
#To configure you should install 'PulseAudio Volume Control' (assuming you have pulseadio installed.
# fedora "sudo dnf install pavucontrol"
# Ubuntu or most apt based systems "sudo apt install pavucontrol"
#!/bin/bash

pactl load-module module-null-sink sink_name=virtspk sink_properties=device.description=Virtual_Speaker
pactl load-module module-null-sink sink_name=virtmic sink_properties=device.description=Virtual_Microphone_Sink

#Remap source
#While the null sink automatically includes a "monitor" source, many programs know to exclude monitors when listing microphones. To work around that, the module-remap-source #module lets us clone that source to another one not labeled as being a monitor:

pactl load-module module-remap-source master=virtmic.monitor source_name=virtmic source_properties=device.description=Virtual_Microphone


#Add loopback to hear 

pactl load-module module-loopback latency_msec=1

#configure loop back in pulseaudio manager. This will be needed to do each time sorry. (Once you setup it should remember)