LiveUSB
code:bash
sudo apt install -y \
squashfs-tools \
xorriso \
isolinux \
syslinux-utils \
rsync
.isoファイルの中身を取り出す
code:bash
mkdir ~/work
cd ~/work
wget https://releases.ubuntu.com/22.04/ubuntu-22.04.4-desktop-amd64.iso
mkdir iso mnt
# mntディレクトリに.isoファイルをマウント
sudo mount -o loop ubuntu-22.04.5-desktop-amd64.iso mnt
# mntディレクトリの中身をiso/へコピー
rsync -a mnt/ iso/
# マウントを解除
sudo umount mnt
isoディレクトリに展開されたルートファイルシステムを展開する
code:bash
sudo unsquashfs -d squashfs iso/casper/filesystem.squashfs
squashfsへのchroot
code:bash
# Mount
sudo mount --bind /dev squashfs/dev
sudo mount --bind /dev/pts squashfs/dev/pts
sudo mount --bind /proc squashfs/proc
sudo mount --bind /sys squashfs/sys
sudo mount -t tmpfs tmpfs squashfs/run
# DNS設定をホストと一緒にする
sudo rm -f squashfs/etc/resolv.conf
sudo cp /etc/resolv.conf squashfs/etc/resolv.conf
# chroot実行
sudo chroot squashfs
以下はsquashfsの中に入ったような操作になる。
code:bash
cd /etc/apt
cp sources.list sources.list.org
cat > /etc/apt/sources.list <<'EOF'
deb http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu jammy-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu jammy-security main restricted universe multiverse
EOF
apt update
apt install sudo
code:bash
# chroot終了
exit
# DNS設定の復元
sudo rm -f squashfs/etc/resolv.conf
sudo ln -s /run/systemd/resolve/stub-resolv.conf \
squashfs/etc/resolv.conf
# マウント解除
sudo umount squashfs/dev/pts
sudo umount squashfs/dev
sudo umount squashfs/proc
sudo umount squashfs/sys
sudo umount squashfs/run
# squashfs を再生成
sudo mksquashfs squashfs iso/casper/filesystem.squashfs -noappend -comp xz -e boot
# manifest更新
sudo sh -c "chroot squashfs dpkg-query -W --showformat='${Package} ${Version}\n' \
iso/casper/filesystem.manifest"
# ISO再生性
sudo cp iso/casper/filesystem.squashfs filesystem.squashfs.new
sudo xorriso -indev ubuntu-22.04.5-desktop-amd64.iso \
-outdev ubuntu-22.04-customized.iso \
-map filesystem.squashfs.new /casper/filesystem.squashfs \
-boot_image any replay
# 確認
qemu-system-x86_64 \
-enable-kvm \
-m 4096 \
-bios /usr/share/OVMF/OVMF_CODE.fd \
-cdrom ubuntu-22.04-customized.iso
# LiveUSB作成
sudo dd if=ubuntu-22.04-ja-live.iso of=/dev/sdX bs=4M status=progress oflag=sync
code:bash