데비안 사전 시드 교환 태그

데비안 사전 시드 교환 태그

데비안 설치를 성공적으로 프로비저닝했지만 문제가 있습니다. swap파티션에 레이블을 지정하고 싶지만 설치 프로그램이 해당 label { }요소를 무시합니다. 파티션이 생성되고 하나가 있지만 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을 사용하기 때문입니다. [이를 확인하려면 네트워크 부팅 설치 프로그램으로 부팅하고 두 번째 콘솔(Alt+F2)로 전환하여 mkswap 바이너리를 확인하세요. ]

해결 방법으로 설치 시 (사전 설치 스크립트를 통해) 스왑 파티션을 다시 포맷하고, UUID를 유지하고, swap, swap1, swap2 등의 레이블을 설정하고, fstab 항목을 수정하는 데비안 패키지 luh-label-swap을 만들었습니다. .

우리 저장소에서 패키지를 찾을 수 있습니다:http://ubuntu.repo.uni-hannover.de/ubuntu/pool/pub/l/luh-label-swap/아래의 관련 코드를 참조하세요.

이것은 매우 우아한 솔루션은 아니지만 우리에게는 효과적입니다. :)

감사합니다, 로버트

관련 부분은 다음과 같습니다.

데비안/포스트인스트

#!/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

관련 정보