5
0
Fork 0
mirror of https://codeberg.org/Computertruhe/Setup-Skripte.git synced 2025-06-28 11:26:18 +02:00

mint/make_swapvol.sh aktualisiert

This commit is contained in:
B3rtl 2024-11-11 20:08:57 +00:00
parent 163cdf97d2
commit 08642fe930

View file

@ -1,13 +1,29 @@
#!/bin/sh #!/bin/bash
TODO: Das muss noch entwickelt geteset werden ## TODO: Das muss noch entwickelt geteset werden
# It is possible to use a swap file on btrfs, but there are some considerations that need taking care of. # It is possible to use a swap file on btrfs, but there are some considerations that need taking care of.
# btrfs filesystem doesn't let to create snapshots if there is a working swap file on the subvolume. That means that it is highly recommended to place a swap file on a separate subvolume. # btrfs filesystem doesn't let to create snapshots if there is a working swap file on the subvolume. That means that it is highly recommended to place a swap file on a separate subvolume.
# Let's assume that the current swap is already off, the / is on /dev/sda1 and Ubuntu is installed with / on @ subvolume and /home is on @home subvolume. # Let's assume that the current swap is already off, the / is on /dev/sda1 and Ubuntu is installed with / on @ subvolume and /home is on @home subvolume.
# Mount /dev/sda1 to /mnt. # Mount /dev/sda1 to /mnt.
sudo mount /dev/sda1 /mnt rootdevsrc=$(findmnt -nr -T / -osource)
echo "Mount / ist gebunden auf $rootdevsrc"
if [[ "$rootdevsrc" =~ \[/@]$ ]]
then
echo "Verwendung von btrfs subvol /@"
else
echo "Hier stimmt was nicht. $rootdevsrc enthält kein btrfs-subvol oder subvol ist nicht '/@'"
exit 1
fi
rootdev=${rootdevsrc%\[/@]}
echo "BTRFS-Device ist daher $rootdev"
echo "OK - erzeuge jetzt (etwas umständlich) ein SubVol /@swap, in dem swapfile liegt"
sudo mount $rootdev /mnt
# If you run ls /mnt, you'll see @, @home and other subvolumes that may be there. # If you run ls /mnt, you'll see @, @home and other subvolumes that may be there.
@ -25,7 +41,7 @@ TODO: Das muss noch entwickelt geteset werden
# Mount the @swap subvolume to /swap. # Mount the @swap subvolume to /swap.
sudo mount -o subvol=@swap /dev/sda1 /swap sudo mount -o subvol=@swap $rootdev /swap
# Create the swap file. # Create the swap file.
@ -36,27 +52,27 @@ TODO: Das muss noch entwickelt geteset werden
sudo chmod 600 /swap/swapfile sudo chmod 600 /swap/swapfile
# Disable COW for this file. # Disable COW for this file.
sudo chattr +C /swap/swapfile
sudo chattr +C /swap/swapfile
# Set size of the swap file to 8G as an example. # Set size of the swap file to 8G as an example.
sudo dd if=/dev/zero of=/swap/swapfile bs=1M count=8192 sudo dd if=/dev/zero of=/swap/swapfile bs=1M count=8192
# Format the swapfile. # Format the swapfile.
sudo mkswap /swap/swapfile sudo mkswap /swap/swapfile
# Turn the swap file on. # Turn the swap file on.
sudo swapon /swap/swapfile sudo swapon /swap/swapfile
# Now the new swap should be working. # Now the new swap should be working.
# #
# You also need to update /etc/fstab to mount all this on boot. Add there two lines: # You also need to update /etc/fstab to mount all this on boot. Add there two lines:
echo "Update /etc/fstab mit uuid Spezifizierung"
# uuid from Dev # uuid from Dev
uuid=$(lsblk -n -o UUID /dev/sda1) uuid=$(lsblk -n -o UUID $rootdev)
sudo echo "UUID=$uuid /swap btrfs subvol=@swap 0 0 /swap/swapfile none swap sw 0 0" >> /etc/fstab sudo echo "UUID=$uuid /swap btrfs subvol=@swap 0 0 /swap/swapfile none swap sw 0 0" >> /etc/fstab
# The UUID is the one of your /dev/sda1. # The UUID is the one of your /dev/sda1.
echo "Fertig"