おうちにかえりたいブログ



debootstrapでDebianをコマンドでインストールする

今回はKVMで動かす用のDebianをインストールしたイメージを作成します。

つまり:

全部入りのインストールです。

着手!

イメージを作成

私はbtrfsなのでreflinc(FICLONE)を使うのであえてQCOW2にはしませんでした。

truncate --size=16GiB vda.img

losetup

お手軽なlosetup、これが単なるファイルの利点です。

sudo losetup -Pf vda.img

パーティショニング

今回はGPTで先頭にあるパーティション1MiBをBIOS Boot 残りをrootfs用に切りました。

sudo fdisk /dev/loop0

ファイルシステムの作成

ホスト環境のbtrfsとCoWのオーバーヘッドを意識して当たり障りのないext4を選びました。

sudo mkfs.ext4 /dev/loop0p2

rootfsのマウント

もしあれば他にもマウントします。

mkdir -p /target
sudo mount /dev/loop0p2

debootstrap

やっとdebootstrapです。repoがふつうのhttpsなのでca-certificateをインストールします。

さもなくば、後でapt-getでTLSの証明書がない系のエラーになります(私も以前のバージョンで経験しました)。

sudo debootstrap --include=ca-certificates --variant=minbase --force-check-gpg trixie /target https://deb.debian.org/debian/

chrootの準備

sudo sh -c 'for i in dev dev/pts proc sys;do mount --bind /$i /target/$i;done'

/etc/fstabの設定

これで必要なマウントポイントを記載します。

パイプはUUIDのコピペ用です。

sudo blkid |sudo nano - /target/etc/fstab

apt-getの設定

printf \
'deb https://deb.debian.org/debian trixie main contrib non-free non-free-firmware\n'\
'deb https://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware\n'\
'deb https://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware\n'\
'deb https://deb.debian.org/debian-security trixie-security main contrib non-free non-free-firmware\n'\
'\n'\
'deb https://deb.debian.org/debian sid main contrib non-free non-free-firmware\n'\
 |sudo tee /target/etc/apt/sources.list\
 >/dev/null

printf \
'Package: *\n'\
'Pin: release n=sid\n'\
'Pin-Priority: 80\n'\
 |sudo tee /target/etc/apt/preferences.d/90sid\
 >/dev/null

printf \
'Acquire::Languages none;\n'\
 |sudo tee /target/etc/apt/apt.conf.d/90translation\
 >/dev/null

起動+管理に必要か便利なアプリのインストール

sudo chroot /target /bin/sh -c 'apt-get update'
sudo chroot /target /bin/sh -c 'apt-get install systemd network-manager sudo nano linux-image-amd64 grub2'

ブートローダーのインストール

sudo chroot /target /bin/sh -c 'update-grub'
sudo chroot /target /bin/sh -c 'grub-install /dev/loop0'

管理者ユーザーの作成と初期設定

これ忘れがちです。

sudo chroot /target /bin/sh -c 'useradd -G sudo -m -s /bin/bash -u 1000 -U user'
sudo chroot /target /bin/sh -c 'passwd -d user'
sudo chroot /target /bin/sh -c 'visudo'

chrootの後片付け

sudo sh -c 'for i in dev/pts dev proc sys;do umount /target/$i;done'

rootfsのアンマウントなど

sudo umount /target
sudo losetup -d /dev/loop0

完成

起動して確認してみましょう