킥스타트에서 암호화된 파티션에 패키지를 설치하시겠습니까?

킥스타트에서 암호화된 파티션에 패키지를 설치하시겠습니까?

나는 팔로우했다이것블로그 게시물에는 암호화된 파티션에 적합한 kickstart에서 luks 암호화된 파티션을 생성하는 방법이 자세히 설명되어 있습니다.

암호화하려는 파티션은 킥스타트 섹션에서 /var/lib설치한 일부 패키지와 같이 설치 되어야 합니다.%packages

%packages내가 겪고 있는 문제는 해당 섹션의 패키지가 설치될 때까지 암호화된 파티션이 설치되지 않는 것 같다는 것입니다. 이는 /var/lib암호화된 파티션이 아닌 루트 파티션 아래에 생성(및 설치)되었음을 의미합니다.

/var/lib킥스타트의 일부로 패키지를 설치하기 전에 암호화된 파티션이 설치되었는지 확인할 수 있는 방법이 있습니까 ? 어느 부분에서 이런 일이 일어나야 합니까?

답변1

여기서도 같은 문제가 발생합니다. 제가 찾은 내용은 다음과 같습니다.

ks.cfg 방법:

문서에 따르면 이것은 정확합니다(내가 읽은 방법은...).

part / --size=8000 --grow --fstype=ext4 --encrypted --passphrase=somepassword

최종 결과:

/dev/vda6 on / type ext4 (rw,relatime,errors=remount-ro)

암호화되지 않은 멋진 작품이며 누구나 무료로 시청할 수 있습니다! :)

해결책:

Ubuntu(Debian 및 Redhat Automation Technology)에서 실행하려면 ks.cfg와 프로비저닝 파일을 혼합해야 합니다. Canonical이 왜 이 접근 방식을 선택했는지에 대해 약간 혼란스럽다고 말해야 합니다. 하지만 제가 찾은 대부분의 문서에서는 자동화된 Ubuntu 설치에서 ks.cfg 및 ks.preseed 파일을 사용할 것을 권장합니다. mini.iso(네트워크 설치)를 사용하는 경우 ks.preseed만 사용할 수 있으며 데비안 문서를 정확하게 따를 수 있습니다(저는 이 작업을 광범위하게 수행했습니다). 위 문제를 해결하려면: 디스크 구성에서 ks.preseed 파일에 다음을 추가해야 합니다.

설치 프로그램은 파일 시스템을 마운트하고 운영 체제를 설치합니다. 마지막으로 원하는 경우 %packages 지시어를 사용할 수 있을 것 같습니다. 그러나 더 많은 제어가 필요한 경우 프로비저닝 파일을 다시 사용하는 것을 고려해 보십시오.

설치된 시스템 수정:

d-i preseed/late_command string \
    # the root filesystem is in /target
    mkdir -p /target/opt/scripts; \ 
    # in-target executes everything as if you were in the new system.
    in-target chmod +x /opt/rtd/scripts/post-install.sh; \ 


디스크 구성:

# --------------------------------------------------- #
#   Disk layout   
# --------------------------------------------------- #
#
## Set option to encrypt the hard disk:
d-i partman-auto/method string crypto

# Option to temporarily set full disk encryption password to automate the install below. 
# If you prefer to be propmpted during the system installation process comment out the 
# two crypto/passphrase options below. The disk encryption password can be changed at 
# anytime once the system is installed using the following command: 
#
#       tool      :   command   : device and partition number
#               cryptsetup luksChangeKey /dev/sda4 
#
#
d-i partman-crypto/passphrase password plaintextpassword-or-encrypted
d-i partman-crypto/passphrase-again password plaintextpassword-or-encrypted

# When disk encryption is enabled, skip wiping the partitions beforehand since it takes too much time.
d-i partman-auto-crypto/erase_disks boolean false
# Delete anything on the first hard drive, then define the actual layout of the disk 
# using and encrypted LVM volume for security. 
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-lvm/device_remove_lvm_span boolean true
d-i partman-auto/purge_lvm_from_device boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto-lvm/guided_size string max
d-i partman-auto-lvm/new_vg_name string crypt
# Use generic instead of vda & sda to ensure recipie is applied even if this install is run in KVM, vmware, virtualbox IDE or SATA.
# d-i partman-auto/disk string /dev/sdb 
d-i partman-auto/choose_recipe select root-encrypted
d-i partman-auto/expert_recipe string                         \
      root-encrypted ::                                       \
                    538 538 1075 free                         \
                    $primary                                  \
                    $iflabel{ gpt }                           \
                    $reusemethod{ }                           \
                    method{ efi } format{ }                   \
              .                                               \
              500 500 500 ext3                                \
                      $primary{ } $bootable{ }                \
                      method{ format } format{ }              \
                      use_filesystem{ } filesystem{ ext4 }    \
                      mountpoint{ /boot }                     \
                                                              \
              .                                               \
              2000 2000 2000 linux-swap                       \
                      $lvmok{ } lv_name{ swap }               \
                      in_vg { crypt }                         \
                      $primary{ }                             \
                      method{ swap } format{ }                \
              .                                               \
              500 10000 1000000000 ext4                       \
                      $lvmok{ } lv_name{ root }               \
                      in_vg { crypt }                         \
                      $primary{ }                             \
                      method{ format } format{ }              \
                      use_filesystem{ } filesystem{ ext4 }    \
                      mountpoint{ / }                         \
              .                                               \
              2000 2000 2000 ext4                             \
                      $primary{ }                             \
                      method{ keep }                          \
                      use_filesystem{ } filesystem{ ext4 }    \
                      label{ rescuedisk }                     \
              .

d-i partman-md/device_remove_md boolean true
d-i partman-md/confirm boolean true
d-i partman-basicfilesystems/no_mount_point boolean false
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
# --------------------------------------------------- #

관련 정보