作業ログ源泉垂れ流し

しがないIT技術者の作業ログを垂れ流す

Debian bullseye (RC1)のインストール練習 5 〜自動パーティション構成〜

標準ではないパーティション構成を自動で作成してみる。

今回は敢えて変な構成でパーティションを作成する。

ドライブ

LVMボリュームグループ

  • vdb: /boot, /boot/efi以外全部をVG vg00で使用
  • vda: 10 GBをVG vg01で使用

LVM論理ボリューム

まずはpreseed.cfgファイルを準備。
自動パーティショニングに関連する部分。

# 使用するドライブ(デバイス)
d-i partman-auto/disk string /dev/vdb /dev/vda
# LVMを利用
d-i partman-auto/method string lvm
d-i partman-auto-lvm/guided_size string max

# recipeファイルを指定
d-i partman-auto/expert_recipe_file string /recipe

# UEFI/GPTを利用
d-i partman-efi/non_efi_system boolean true
d-i partman-partitioning/choose_label string gpt
d-i partman-partitioning/default_label string gpt

# swapパーティションなしでも確認しない
d-i partman-basicfilesystems/no_swap boolean false

# フォーマット未指定パーティションありでも確認しない
d-i partman-basicmethods/method_only boolean false

partman用のrecipeファイルを ドキュメントソースを参考に作成する。

lvm_two_drive ::

538 538 1075 free
        $iflabel{ gpt }
        $reusemethod{ }
        method{ efi }
        format{ }
.

5000 5000 -1 ext4
        $defaultignore{ }
        $primary{ }
        method{ lvm }
        device{ /dev/vdb }
        vg_name{ vg00 }
.

512 512 768 ext2
        $defaultignore{ }
        device{ /dev/vdb }
        method{ format } format{ }
        use_filesystem{ } filesystem{ ext2 }
        mountpoint{ /boot }
.
8000 1 8000 $default_filesystem
        $lvmok{ } in_vg{ vg00 }
        method{ format } format{ }
        use_filesystem{ } $default_filesystem{ }
        mountpoint{ / }
.
4000 1 4000 $default_filesystem
        $lvmok{ } in_vg{ vg00 }
    method{ format } format{ }
    use_filesystem{ } $default_filesystem{ }
    mountpoint{ /var }
.
1 10000 -1 free
        $lvmok{ } in_vg{ vg00 }
        method{ keep }
.

10000 10000 10000 ext4
        $defaultignore{ }
        $primary{ }
        method{ lvm }
        device{ /dev/vda1 }
        vg_name{ vg01 }
.
5000 1 10000 free
        $lvmok{ } in_vg{ vg01 }
    method{ format } format{ }
    use_filesystem{ } $default_filesystem{ }
    mountpoint{ /home }
.
5000 1 -1 ext4
        $defaultignore{ }
        $primary{ }
        method{ lvm }
        device{ /dev/vda2 }
        vg_name{ dummy }
.

なお、partmanでは空き容量は全てパーティションに割り振ってしまうので、空きを作りたい場合はダミーのパーティションを作成しておいて、インストール後に削除する必要がある。

virt-installでインストールする。

  • vda.img, vdb.imgの2個のディスクを作成
  • initrd-injectでpreseed.cfgファイルとrecipeファイルを利用
host$ virt-install --name debian --memory 4096 --vcpus 1 --location $PWD/debian-bullseye-DI-rc1-amd64-netinst.iso --os-variant debiantesting --disk path=vda.img,size=20,format=qcow2 --disk path=vdb.img,size=16,format=qcow2 --network network=default --graphics none --serial pty --console pty --initrd-inject preseed.cfg --initrd-inject recipe --extra-args 'console=ttyS0,115200n8 serial'

自動でインストール完了。
ただ、そのままだと、1番目のディスク (vda.img) から起動しようとしてしまいOSが起動しないので、記事「KVMのブートドライブ変更」と同様に起動ドライブを変更する。

host$ virsh destroy debian
host$ virsh edit debian

VMを起動してパーティション構成を確認。

debian# fdisk -l /dev/vda /dev/vdb
Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A682AD80-3822-40C3-B683-9F552A752B6F

Device        Start      End  Sectors  Size Type
/dev/vda1      2048 19531775 19529728  9.3G Linux LVM
/dev/vda2  19531776 41940991 22409216 10.7G Linux LVM


Disk /dev/vdb: 16 GiB, 17179869184 bytes, 33554432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 5F3C0AC9-B022-4EE4-A8ED-0A19E0D46072

Device       Start      End  Sectors  Size Type
/dev/vdb1     2048  1050623  1048576  512M Linux filesystem
/dev/vdb2  1050624  2050047   999424  488M Linux filesystem
/dev/vdb3  2050048 33552383 31502336   15G Linux LVM


debian# pvscan
  PV /dev/vdb3   VG vg00            lvm2 [<15.02 GiB / 0    free]
  PV /dev/vda2   VG dummy           lvm2 [10.68 GiB / 10.68 GiB free]
  PV /dev/vda1   VG vg01            lvm2 [<9.31 GiB / 0    free]
  Total: 3 [35.01 GiB] / in use: 3 [35.01 GiB] / in no VG: 0 [0   ]


debian# lvscan
  ACTIVE            '/dev/vg00/root' [<7.45 GiB] inherit
  ACTIVE            '/dev/vg00/var' [3.72 GiB] inherit
  ACTIVE            '/dev/vg00/keep_1' [<3.85 GiB] inherit
  ACTIVE            '/dev/vg01/home' [<9.31 GiB] inherit


debian# df
Filesystem            1K-blocks   Used Available Use% Mounted on
udev                    1995216      0   1995216   0% /dev
tmpfs                    402588    512    402076   1% /run
/dev/mapper/vg00-root   7588516 603708   6577872   9% /
tmpfs                   2012924      0   2012924   0% /dev/shm
tmpfs                      5120      0      5120   0% /run/lock
/dev/vdb2                481642  48558    408099  11% /boot
/dev/mapper/vg01-home   9504960     40   9000500   1% /home
/dev/mapper/vg00-var    3761336 156808   3392972   5% /var
/dev/vdb1                523244      4    523240   1% /boot/efi

予定通りのパーティションが自動で作成できた!

ダミーのパーティションを削除する。

debian# lvremove -y /dev/vg00/keep_1
  Logical volume "keep_1" successfully removed
debian# vgremove -y dummy
  Volume group "dummy" successfully removed
debian# pvremove /dev/vda2
  Labels on physical volume "/dev/vda2" successfully wiped.

結論!凝ったパーティション構成にしたい場合は、インストール後に手動で作った方が早い!