Debian または Fedora の永続化ライブイメージの作成

2026/06/02 3:02

Debian または Fedora の永続化ライブイメージの作成

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

標準 Linux ライブ ISO ファイルシステムは読み取り専用(ISO9660/EROFS)であり、パーシステンスが設定されていない限り、再起動後に変更したユーザーデータやインストールされたパッケージは失われます。一般的な解決策としては、RAM または手動で作成した書き込み可能なパーティション(例:ext4)を用いた OverlayFS の利用です。

Ubuntu では通常、「persistent」というカーネルパラメータと空のパーティション「casper-rw」を併用し、12 バイトのバイトシフティングを行うことで ISO を変更します(

quiet splash
persistent
に置換)。成功確認は
/cow
マウントポイントのサイズを確認することで実施します。Debian は
persistence
パラメータを使用し、「persistence」というラベルを持つパーティションに、
/ union
ラインを含む
persistence.conf
ファイルを配置する必要があります。検証には、ルートをオーバーレイマウントしておりそれが persistence パーティション(例:
/run/live/persistence/sda3
)を指していることを確認します。

Fedora は SELinux エンフォーシングモードによる複雑さが高く、

selinux=0 rd.live.overlay=LABEL=foo:/bar
などのブートパラメータ、「foo」と「bar」というラベルを持つパーティション、および
ovlwork
ディレクトリが必要となります。この原生方法は grub.cfg のスペース制限により制限され、ISO9660 レイアウトが変更されると破損するリスクがあります。安定した Fedora 回避策としては、/LiveOS/squashfs.img からルートファイルシステムを抽出し、ブートファイルを格納するための FAT32 パーティションと ext4 パーティション(ラベル:"Fedora-Live")を作成し、それらを単一の GPT レイアウトに結合してユーザーファイルを保存する方法です。このプロセスでは、livesys サービスを開始し、liveuser アカウントを作成するためにカーネルパラメータに
rd.live.image
を追加する必要もあります。

歴史的には、危険な ISO 変更やバイトシフティングが使用されていましたが、ディストリビューションの更新に伴って頻繁に失敗しました。現代のワークフローでは、不安定な編集スクリプトよりも、外部イメージ管理ツールと明確なドキュメントを好んで採用し、データ損失を防いでいます。GitHub 上の自動化スクリプトは、ext4 パーティションの注入やテスト用途(QEMU/KVM と OVMF など)でのバイトシフティングを行うことを支援し、堅牢なパーシステンス解決への安定した移行を可能にします。

本文

Fedora Live ISO における永続化(Persistence)の設定と実装方法

「Live」ISO を USB ドライブに書き込み、起動した際にカスタマイズやインストール済みのパッケージが消えてしまうのは、只読みの ISO ファイルシステム構造が原因です。その原理と、各ディストリビューションでの永続化を実現する具体的な手順を解説します。

1. Live ISO の動作原理

ISO ファイルは ISO9660 という只読みのファイルシステムを使用しており、書き込み可能媒体(USB など)に書き込まれてもその構造自体は変化しません。

  • OS の挙動: Linux の VFS レヤーが只読りの FS を検知すると、データブロックへの書き込みを拒否し
    EROFS
    (Read-only file system) エラーを返します。
  • 解決策: 通常は RAM にオーバーレイを作成して書き込み領域(OverlayFS)を用意しますが、Live ISO 内部にはそれを上書きするスペースがないため、別途対応が必要です。

2. ディストリビューション別の永続化設定方法

各ディストリビューションの標準的なカーネルパラメータとパーティション要件は異なります。

Ubuntu (および Xubuntu)

  • カーネルパラメータ:
    persistent
  • パーティション要件: `(空の) パーティションにはラベル「casper-rw」を付けること。**

確認方法

永続化が有効かどうかは

/cow
マウント状況で確認します。

# cow モード(永続化が有効)の場合:
$ df -h | grep cow
/cow           9.8G  161M  9.2G   2% /

# casper-rw モード(永続化が無効または誤作動の場合):
$ df -h | grep casper
/dev/disk/by-label/casper-rw  ...

ISO 編集方法

ISO ファイルを直接マウントして編集は無意味です。以下のいずれかの方法を採用します。

  1. ISO からコンテンツを抽出して編集: GRUB.cfg を編集後、再コンパイル。
  2. バイトスワップ(簡易的な修正): ISO のヘッダー部分のみ置換。
$ export LANG=C
# quiet splash -> persistent (注:置換文字列の長さが一致しないと FS が破損する)
$ sed -i 's/quiet splash/persistent /' xubuntu-26.04-desktop-amd64.iso

Debian

  • カーネルパラメータ:
    persistence
    (Ubuntu の
    persistent
    と異なります)
  • パーティション要件:
    • ラベルとして「persistence」を付ける。
    • ルートに
      persistence.conf
      ファイルが存在し、
      / union
      行を含むこと。

ISO 編集方法

同様にバイトスワップで可能です(ISO の文字列順序が異なるため注意)。

$ export LANG=C
$ sed -i 's/splash quiet/persistence /' debian-live-13.5.0-amd64-xfce.iso

確認方法

オーバーレイが正しく機能しているか、マウント情報から確認します。

$ mount | grep sda3
/dev/sda3 on /run/live/persistence/sda3 type ext4 (rw,noatime)
overlay on / type overlay (rw,noatime,lowerdir=/run/live/rootfs/filesystem.squashfs/,upperdir=/run/live/persistence/sda3/rw,workdir=/run/live/persistence/sda3/work,redirect_dir=on)

Fedora

  • カーネルパラメータ:
    selinux=0 rd.live.overlay=LABEL=<ラベル>:<ディレクトリ>
    • 例:
      rd.live.overlay=LABEL=foo:/bar
  • パーティション要件:
    • ラベル「foo」(任意の値だが、上記コマンドと一致);
    • ディレクトリ「bar」;
    • ハードコードされた
      ovlwork
      ディレクトリ。

確認方法

$ df -h | grep sdb1
/dev/sdb1        9.8G  134M  9.1G   2% /run/initramfs/overlayfs

$ mount | grep Live
LiveOS_rootfs on / type overlay (rw,relatime,lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork)

$ file /run/overlayfs
/run/overlayfs: symbolic link to /run/initramfs/overlayfs/bar

注意点

Fedora は既存の ISO ファイル構造を改変する方法(バイトスワップなど)が脆弱です。

GRUB.cfg
のサイズ変更などで破損するリスクがあります。信頼性の高い方法として、ISO を分解してルートファイルシステムを抽出・編集し、再結合する必要があります。

3. Fedora での信頼できる構成方法

Fedora Live ISO は内部で 2.6GB の

squashfs.img
(EROFS) を使用しています。これを以下のように再構築します。

ステップ 1: イメージの作成

  1. FAT32 パーティション: EFI ブートファイルとカーネル、initramfs を格納。
  2. ext4 パーティション:
    squashfs.img
    の内容を抽出したものを格納(例: ラベル「Fedora-Live」)。

この 2 つのイメージを GPT レイアウトで結合し、USB に書き込みます。

ステップ 2: GRUB.cfg の設定

シンプルな構成にします。

set timeout=3
menuentry "Fedora Live" {
  linux /vmlinuz rd.live.image root=LABEL=Fedora-Live rw noresume
  initrd /initramfs
}
  • 重要:
    rd.live.image
    パラメータは systemd が
    livesys
    サービスを起動するために必須です。省略すると liveuser が作成されません。

ステップ 3: テスト環境での実行 (QEMU/KVM)

USB 書き込み前に、以下のように UEFI BIOS と仮想マシンでテストできます。

# ISO を分割して画像として出力
$ sudo ./mflip 10G Fedora-Xfce-Live-44-1.7.x86_64.iso out.img

# QEMU コマンドのエイリアス定義 (グラフィックス有)
$ alias qemu3d='qemu-kvm -machine q35 \
   -bios /usr/share/OVMF/OVMF_CODE.fd -m 4G \
   -display gtk,gl=on -smp 2 \
   -device virtio-vga-gl,hostmem=2G,blob=true,venus=true'

# VM を起動
$ qemu3d out.img

同じ日のほかのニュース

一覧に戻る →

2026/06/05 5:11

Anthropic の AI 駆動型脆弱性情報発見のためのオープンソースフレームワーク

## Japanese Translation: サマリーは全体的には良好ですが、キーポイント(コマンド、特定のスキル、パイプラインの段階)に見られる具体的な実行可能な詳細が不足しています。構造とコマンドを取り入れたやや詳細なバージョンであれば、推論を加えずに完全性を向上させることができます。 ## サマリー(改善版) Anthropic は、「Claude Security」というソフトウェアの脆弱性発見および修正のためのマネージドサービスを紹介しており、オープンソースのリファレンスハルネス `github.com/anthropics/defending-code-reference-harness` が提供されています。このリポジトリは、セキュリティチームとのパートナーシップから得られた知見を活用し、自律的な C/C++ 脆弱性発見および修正のためのガイド役を担っていますが、外部からのコントリビューションを受け入れるメンテナンスされた製品ではありません。アクセスには Bedrock や Vertex、Azure などの特定の API が要求されます。 コア技術は、脅威モデリング、静的スキャン、実行検証、パッチ適用を含む厳格な多段階パイプラインを使用しています。主要なスキルには `/threat-model`、`/vuln-scan`、`/triage`、`/patch`、および `/customize` があります。特に重要なのは、自律エージェントがシステムへの損傷を防ぐために **gVisor** サンドボックス内で対象コードを実行すること(Claude API へのエGRESSは制限されている)であり、パイプラインを `bin/vp-sandboxed` を通じて呼び出す前にユーザーが `./scripts/setup_sandbox.sh` を実行する必要があります。`/quickstart` スキルはサンドボックスなしで **Claude Code** で安全に確認できるのに対し、自律ループにはそれを必要とします。 ユーザーは段階的なアプローチに従うよう推奨されます:ステップ 1(Day 1)では、対象コードに対して静的スキャンと脅威モデリングを行い、`/patch` を通じてパッチを生成し、カスタマイズをスモークランで検証してからステップ 2(Day 2)へ進む。ステップ 2 では C/C++ ライブラリ向けの完全な自律ループを展開します。生产用途では、組織は複数の並列パイプラインウェーブ(ステップ 4)を実行し、結果に対して自動タリアジを行うべきです(`/triage` で投票を使用)。本システムは SDLC に連続的検証を統合しており、毎日スキャンや CI パイプラインを通じて運用され、ゼロから構築される完璧なプラットフォームを要求せずに多様な依存関係の露出に対処するのを支援します。サンドボックス化、カスタマイズ、およびパッチに関するドキュメントは `docs/security.md`、`docs/agent-sandbox.md` および関連ガイドで利用可能です。

2026/06/05 6:42

URL の IPv6 ゾーンは間違いです

## Japanese Translation: - 現在稼働中の Anubis ウェブサイトはバージョン v1.25.1-0.20260604200537-44d5fa3ce047 を使用しています。マスコットのデザインは CELPHASE によって作成されました。サイトには Techaro に帰属する著作権表示が表示され、コンテンツは「❤️(愛)と🇨🇦(カナダ)で作成」であるとしてクレジットされています。

2026/06/04 22:00

Cloudflare に参加する VoidZero が決定

## Japanese Translation: VoidZero(Vite、Vitest、Rolldown、Oxc、および Vite+ の開発者)が、その全チームを Cloudflare に統合し、エコシステムを完全にオープンソース化し、MIT ライセンスに基づき、ベンダー非依存な状態を維持することを約束しています。100 万ドルの資金を Vite エコシステムファンドに供与することで、コミュニティ主導の開発を優先し、ツールをプロプライエタリなスタックに合わせるのではなく、強化されたエンジニアリングリソースを直接ツール維持に向けるとして、この戦略的移行を進めています。Evan とコアチームは引き続き開発をリードし続けます。Vite(週 1.29 億回のダウンロード)や新しい Cloudflare プラグイン(週 1,400 万回のダウンロード)の高い採用率は、特に AI 開発者がこの統一されたワークフローによって支えられる高速フィードバックループを必要としていることで、強固な市場の信頼を示しています。現在、Vite は React、Next.js(vinext 経由)、Vue、SvelteKit、Nuxt、Astro、Solid、Qwik、Angular など主要なフレームワークの基盤となるビルドツールとして機能しています。新たに導入された統一 CLI(`cf`)はネイティブデプロイとバインディングを統合しており、標準的な Vite 操作と完全に互換性を保ちつつ、「cf dev」コマンドにより「vite dev」の超集合体として動作します。将来の計画には、Void プラットフォームを完全にオープンソース化して公衆との協力を促進することや、Cloudflare の Environment API を通じて非 Node ランタイムをサポートするツールへの進化が含まれています。結局のところ、開発者は強力なリソースと統一された環境にアクセスでき、業界はベンダーロックインなしで長期的なポータビリティを確保する強化された標準から恩恵を受け、Cloudflare のツールは Vite を Cloudflare 用に特別に適応させるのではなく、Vite スタンドダードの方へ移行しています。

Debian または Fedora の永続化ライブイメージの作成 | そっか~ニュース