fix swapfile btrfs: chattr +C avant ecriture, ajout e2fsprogs
This commit is contained in:
+13
-1
@@ -58,12 +58,24 @@ do_install() {
|
||||
sed -i "s#/dev/placeholder#$DEVICE#" "$repo_dir/$disko_rel_path"
|
||||
|
||||
echo "Partitionnement de $DEVICE..."
|
||||
# --yes-wipe-all-disks : évite la confirmation interactive "type yes to
|
||||
# continue" (vu dans le code source de la commande disko) — un install
|
||||
# de flotte ne doit pas dépendre de quelqu'un présent au clavier pour
|
||||
# confirmer, l'effacement est le but assumé de ce script.
|
||||
nix run --no-write-lock-file --refresh 'github:nix-community/disko' -- \
|
||||
--mode destroy,format,mount \
|
||||
--yes-wipe-all-disks \
|
||||
"$repo_dir/$disko_rel_path"
|
||||
|
||||
echo "Swap temporaire sur le disque cible (RAM limitée sur certains PC du parc)..."
|
||||
dd if=/dev/zero of=/mnt/.install-swapfile bs=1M count=4096 status=none
|
||||
# Sur btrfs (notre système de fichiers), le CoW doit être désactivé
|
||||
# (chattr +C) AVANT toute écriture de données dans le fichier, sinon
|
||||
# swapon échoue avec "Invalid argument" (source : btrfs.readthedocs.io/
|
||||
# en/latest/Swapfile.html — chattr +C sur un fichier déjà écrit ne
|
||||
# s'applique pas rétroactivement).
|
||||
truncate -s 0 /mnt/.install-swapfile
|
||||
chattr +C /mnt/.install-swapfile
|
||||
fallocate -l 4G /mnt/.install-swapfile
|
||||
chmod 600 /mnt/.install-swapfile
|
||||
mkswap /mnt/.install-swapfile
|
||||
swapon /mnt/.install-swapfile
|
||||
|
||||
@@ -52,7 +52,8 @@ in
|
||||
git
|
||||
parted
|
||||
gptfdisk
|
||||
util-linux # lsblk
|
||||
util-linux # lsblk, fallocate
|
||||
e2fsprogs # chattr (NOCOW pour le swapfile sur btrfs)
|
||||
installScript
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user