「誤家庭における小規模ネットワーク構築/ルートファイルシステム暗号化」の版間の差分

提供: Medeshima wiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の19版が非表示)
1行目: 1行目:
= PCで作業 =
= PCで作業 =


== ルートファイルシステムのバックアップ ==
== ルートファイルシステムのバックアップ ==


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
$ sudo rsync -aHAX --numeric-ids --info=progress2 /mnt/rpi-root/ /mnt/backup/
$ sudo rsync -aHAX --numeric-ids --info=progress2 \
/mnt/rpi-root/ /mnt/backup/
</syntaxhighlight>
</syntaxhighlight>


10行目: 11行目:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sudo cryptsetup luksFormat \
$ sudo cryptsetup luksFormat \
--type luks2 \
--type luks2 \
--cipher aes-xts-plain64 \
--cipher aes-xts-plain64 \
18行目: 19行目:
--iter-time 2000 \
--iter-time 2000 \
/dev/sdX
/dev/sdX
$ sudo cryptsetup open /dev/sdX cryptroot
$ sudo mkfs.ext4 -L rootfs /dev/mapper/cryptroot
</syntaxhighlight>
</syntaxhighlight>


== ルートファイルシステムの復元 ==
== cmdline.txt ==

<syntaxhighlight lang="bash">
sudo rsync -aHAX --numeric-ids \
--info=progress2 \
/mnt/backup/ \
/mnt/newroot/
</syntaxhighlight>

== ファイルシステムの設定ファイルを修正 ==

=== /etc/fstab ===

<pre>
/dev/mapper/cryptroot / ext4 defaults,noatime 0 1
</pre>

=== /etc/crypttab ===

<syntaxhighlight lang="bash">
$ sudo cryptsetup luksUUID /dev/sdX
</syntaxhighlight>

<pre>
cryptroot UUID=XXXXXX none luks
</pre>

== chrootして作業 ==

<syntaxhighlight lang="bash">
$ sudo cp /usr/bin/qemu-aarch64-static /mnt/usr/bin/
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /dev/pts /mnt/dev/pts
$ sudo mount -t proc /proc /mnt/proc
$ sudo mount -t sysfs /sys /mnt/sys
$ sudo mount -t tmpfs /run /mnt/run
$ sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
$ sudo mount /dev/sdX /mnt/boot/firmware
$ sudo chroot /mnt /usr/bin/qemu-aarch64 /bin/bash
</syntaxhighlight>

=== cryptsetupのインストール ===

<syntaxhighlight lang="bash">
$ apt update
$ apt install cryptsetup cryptsetup-initramfs
</syntaxhighlight>

=== /etc/initramfs-tools/initramfs.conf ===

<pre>
MODULES=most
</pre>

=== cmdline.txt ===

<pre>
root=/dev/mapper/cryptroot
</pre>


削除
削除
27行目: 88行目:
quiet splash
quiet splash
</pre>
</pre>

=== initramfsの更新 ===

<syntaxhighlight lang="bash">
$ update-initramfs -u -k 6.18.39+rpt-rpi-v8
$ update-initramfs -u -k 6.18.39+rpt-rpi-2712
</syntaxhighlight>

== 後処理 ==

<syntaxhighlight lang="bash">
$ sudo umount /mnt/dev/pts
$ sudo umount /mnt/dev
$ sudo umount /mnt/proc
$ sudo umount /mnt/sys
$ sudo umount /mnt/run
$ sudo umount /mnt/boot/firmware
$ sudo umount /mnt
$ sudo cryptsetup close cryptroot
</syntaxhighlight>

2026年9月6日 (日) 18:13時点における最新版

PCで作業

ルートファイルシステムのバックアップ

$ sudo rsync -aHAX --numeric-ids --info=progress2 \
  /mnt/rpi-root/ /mnt/backup/

LUKS2で暗号化

$ sudo cryptsetup luksFormat \
  --type luks2 \
  --cipher aes-xts-plain64 \
  --key-size 512 \
  --hash sha256 \
  --pbkdf argon2id \
  --iter-time 2000 \
  /dev/sdX
$ sudo cryptsetup open /dev/sdX cryptroot
$ sudo mkfs.ext4 -L rootfs /dev/mapper/cryptroot

ルートファイルシステムの復元

sudo rsync -aHAX --numeric-ids \
  --info=progress2 \
  /mnt/backup/ \
  /mnt/newroot/

ファイルシステムの設定ファイルを修正

/etc/fstab

/dev/mapper/cryptroot  /               ext4    defaults,noatime  0       1

/etc/crypttab

$ sudo cryptsetup luksUUID /dev/sdX
cryptroot UUID=XXXXXX none luks

chrootして作業

$ sudo cp /usr/bin/qemu-aarch64-static /mnt/usr/bin/
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /dev/pts /mnt/dev/pts
$ sudo mount -t proc /proc /mnt/proc
$ sudo mount -t sysfs /sys /mnt/sys
$ sudo mount -t tmpfs /run /mnt/run
$ sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
$ sudo mount /dev/sdX /mnt/boot/firmware
$ sudo chroot /mnt /usr/bin/qemu-aarch64 /bin/bash

cryptsetupのインストール

$ apt update
$ apt install cryptsetup cryptsetup-initramfs

/etc/initramfs-tools/initramfs.conf

MODULES=most

cmdline.txt

root=/dev/mapper/cryptroot

削除

quiet splash

initramfsの更新

$ update-initramfs -u -k 6.18.39+rpt-rpi-v8
$ update-initramfs -u -k 6.18.39+rpt-rpi-2712

後処理

$ sudo umount /mnt/dev/pts
$ sudo umount /mnt/dev
$ sudo umount /mnt/proc
$ sudo umount /mnt/sys
$ sudo umount /mnt/run
$ sudo umount /mnt/boot/firmware
$ sudo umount /mnt
$ sudo cryptsetup close cryptroot