Debian のインストールを正常にプロビジョニングしましたが、問題があります。swap
パーティションにラベルを付けたいのですが、インストーラはそのlabel { }
要素を無視します。パーティションが作成され、1つがありますが、UUID
ラベル(Windowsなどのマルチシステム環境)を介してインストールしたいと思います。他のタグの生成に問題はありません。
Debian Stretchをプロビジョニングしています。
d-i partman/early_command \
string sfdisk --wipe-partitions always --delete /dev/sda 2 3 4
d-i partman-auto/disk string /dev/sda
d-i partman-auto/init_automatically_partition select biggest_free
d-i partman-auto/expert_recipe string \
lk-part :: \
2000 2000 2000 linux-swap \
$primary{ } \
method{ swap } \
format{ } \
label{ SWAPPART } \
. \
50000 50000 50000 xfs \
$primary{ } \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ xfs } \
mountpoint{ / } \
label{ LKLINUX } \
. \
40000 40100 -1 xfs \
$primary{ } \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ xfs } \
mountpoint{ /tmp } \
label{ TEMPFS } \
.
d-i partman/mount_style select label
上記のタグがなぜswap
無視されるのかご存知ですか?
インストール後に手動で次の操作を行います。
swapoff /dev/sda2
mkswap --label SWAPPART /dev/sda2
swapon /dev/sda2
ラベルが存在し、次のように表示されますblkid
。
安否挨拶
カミール
答え1
私はこの質問がかなり古くなっていることを知っていますが、誰かが偶然この質問を見つけた場合に備えて、答えは次のようになります。
スワップタグが無視される理由は、インストーラがタグを設定できないbusyboxのmkswapを使用するためです。 [これを確認するには、ネットワークブートインストーラで起動し、2番目のコンソール(Alt + F2)に切り替えてmkswapバイナリを確認します。 ]
回避策として、インストール時に(プレインストールスクリプトを介して)スワップパーティションを再フォーマットし、UUIDを保持し、swap、swap1、swap2などのラベルを設定し、fstabエントリを変更するDebianパッケージluh-label-swapを作成しましたです。 。
私たちのリポジトリでパッケージを見つけることができます:http://ubuntu.repo.uni-hannover.de/ubuntu/pool/pub/l/luh-label-swap/下記の関連コードをご覧ください。
これは非常にエレガントなソリューションではありませんが、私たちにとって効果的です。 :)
ありがとう、ロバート
関連部分は次のとおりです。
Debian/ポストインスト
#!/bin/sh
# postinst script for luh-label-swap
set -e
# [..]
case "$1" in
configure)
cp -a /etc/fstab /etc/fstab.dpkg-old
/usr/lib/luh-label-swap/label-swap
echo "modified /etc/fstab; old version saved as /etc/fstab.dpkg-old."
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
/usr/lib/luh-ラベル-スワッピング/ラベル-スワッピング
#!/bin/bash
# /usr/lib/luh-label-swap/label-swap
#
FSTAB="/etc/fstab"
IAM="$(basename $0)"
unset NO
swapoff -a
for UUID in $(egrep '^UUID=[0-9a-f-]+\s+[[:alpha:]]+\s+swap' "$FSTAB" \
| sed 's/^UUID=\([0-9a-f-]*\).*/\1/'); do
echo "$IAM: found swap with UUID=$UUID"
DEVICE="$(blkid -U "$UUID")"
if [ -n "$DEVICE" ]; then
LABEL="swap$NO"
test -v $NO && NO+=1 || declare -i NO=1
echo $IAM: mkswap --label "$LABEL" --uuid "$UUID" "$DEVICE"
mkswap --label "$LABEL" --uuid "$UUID" "$DEVICE" >/dev/null 2>&1
echo $IAM: sed -i "s/^UID=$UUID/LABEL=$LABEL/" "$FSTAB"
sed -i "s/^UUID=$UUID/LABEL=$LABEL/" "$FSTAB"
fi
done
swapon -a