web-dev-qa-db-ja.com

永続的なDebianライブUSBを作成するにはどうすればよいですか?

USBフラッシュドライブにインストールしてどこにでもDebianを使用したいのですが、設定を保存し、再起動時にパッケージを失うことなくパッケージをインストール/更新できるようにする方法がわかりません。

だから私はこれからハイブリッドISOイメージをダウンロードしました link そして、私は [〜#〜] faq [〜#〜] の指示に従いました:

dd if=image.iso of=/dev/sdb bs=4M; sync

このコマンドは、ISOイメージと同じサイズ(8 GBのうち1.3 GB)のパーティションを作成することによってイメージをフラッシュドライブにコピーし、残りのフラッシュドライブは割り当てられていません。

私はこれを行う方法を検索しましたが、すべてのチュートリアルは異なるアプローチを使用しており、それらのいくつかは古く、古いusb-hddイメージについて話します。

では、このハイブリッドイメージをフラッシュドライブにインストールするにはどうすればよいですか?

パッケージをインストールして設定を保存できるようにするには、フラッシュドライブをどのようにパーティション化すればよいですか? ddを使用せずにこのイメージをインストールするにはどうすればよいですか?

11
Pierre

Debianは粘り強く生きています。

  1. まず、www.debian.org/CD/live/の公式画像をお試しください

    SEサイトから(標準ライブ):

    wget https://cdimage.debian.org/debian-cd/current-live/AMD64/iso-hybrid/debian-live-10.0.0-AMD64-standard.iso
    

    自動ミラー選択(メイトライブ)から:

    wget http://debian-cd.debian.net/debian-cd/10.0.0-live/AMD64/iso-hybrid/debian-live-10.0.0-AMD64-mate.iso
    

    次に、ファイルをダウンロードするチェックサム https://cdimage.debian.org/debian-cd/current-live/AMD64/iso-hybrid/SHA256SUMS ...

    OK ISOファイルシステムは読み取り専用ですが、少しあります回避策:このようにpersistenceによって重要bootparam

    • ファイルが検証されると!
    • バイナリの文字列を置き換えるためにsedを使用することにより、それらを変更できます。

      LANG=C sed 's/splash quiet/persistence /;s/quiet splash/persistence /' \
          </tmp/debian-live-10.0.0-AMD64-mate.iso \
          >/tmp/debian-live-10.0.0-AMD64-mate-persist.iso
      

    これにより、どこでもsplash quietまたはquiet splashpersistenceに厳密に置き換えることにより、ライブバイナリファイルの変更されたコピーが作成されます。 Okこれは、grubブートコマンドがこの2つの単語を一緒に含む場合にのみ機能します.

    ただし、永続化後のスペースを見逃さないように注意してください。

    "splash quiet" -> 12 characters
    "persistence " -> 12 characters
    

    または、バイナリが壊れます。

  2. USBキーにインストール

    dd if=debian-live-10.0.0-AMD64-standard-persist.iso of=/dev/sdX
    

    次に、永続化のためにthirdパーティションを追加します。

    fdisk /dev/sdX
    n           # new partition
    p           # primary
    <Return>    # default: 3
    <Return>    # default: next free sector
    <Return>    # default: last addressable sector
    w           # write and quit
    

    これは対話なしで実行できます:

    fdisk /dev/sdX <<<$'n\np\n\n\n\nw'
    

    unionを使用して永続性をフォーマットし、準備します。

    mkfs.ext4 -L persistence /dev/sdX3
    mount /dev/sdX3 /mnt
    echo '/ union' >/mnt/persistence.conf
    sync
    umount /mnt
    

    次に、取り出して試してください!

    公式の変更されていないイメージを使用する場合、persistenceを使用するには、interruptブート選択する必要があります。

    menu画面が表示されたら、ブートオプションを選択します。 Return、ヒット Tab

    カーネルコマンドラインが表示されます。最後のWord(persistence)の後にスペースを入れてquietを追加し、次に Return

    残念ながら、最初のパーティションはUEFIにバンドルされていてISOであるため、ブートコマンドを変更することはできません。

永続化されたカスタマイズされたDebianライブ

ブートコマンドラインにpersistenceを追加するだけで、他に何もできません!? FATとsyslinuxを使用する方法はありますが、多くのデータ操作があります。それは長く、私はこれがあまりよくないことに気づきます。私は好む:

  1. 自分のDebianをライブで構築する

    もっとregularが少し長くなります(少なくとも最初の画像の場合)、

    注:このすべてのものはroot userの下で実行されました(これはfakerootを使用して機能する必要がありますが、これは現在、そこでテストされていません)。

    apt install live-build
    

    ...およびすべての推奨事項。

    コメント行を削除するための小さなXARGS関数を書きました:

    XARGS() { sed -ne '/#/d;s/ \t//g;H;${x;s/\n/ /g;s/^ //;p}'; }
    

    最初にbootparamsを設定し、永続化のためのローカリゼーションと引数を指定します。

    ExtraBootParams=$(XARGS <<eobp
        boot=live
        config
        locales=ed_WT
        keyboard-layouts=ed
        keyboard-variant=wt
        persistence
    eobp
    )
    

    今あなたのパッケージリスト:

    PackageList=$(XARGS <<-eopl
        gnome
        gnome-core
        # gnome-full
        # debian-forensics
        debian-installer-launcher
    eopl
    )
    

    lbの非常に最初のステップ:初期ツリーを作成します。

    lb config --architectures AMD64 -d buster --debian-installer-gui \
        true --archive-areas 'main contrib non-free' \
        --bootappend-live "$ExtraBootParams" 
    

    今、あなたは小さな木を持っています、あなたは次のことができます:

    printf "%s\n" > config/package-lists/standard.list.chroot \
        $Packages $PackageList
    

    OK、次のコマンドにはかなり時間がかかります! (私のホストで約1時間)

    lb build
    

    すべて問題なければ、自分のDebian liveを見つけることができます:

    ls -l *.iso
    -rw-r--r--  1 root root 1511817216 sep  7 15:32 live-image-AMD64.hybrid.iso
    
  2. USBキーにインストール(ダウンロードしたバイナリと同じ操作)

    'iso-hybrid'イメージには、UEFI用の2つのパーティションが含まれ、両方の方法でライブ混合されます[〜#〜] efi [〜#〜]biosが起動します。

    file live-image-AMD64.hybrid.iso
    live-image-AMD64.hybrid.iso: DOS/MBR boot sector; partition 2 : ID
    =0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsect
    or 708, 5696 sectors
    

    あなたは単にあなたのUSBキーを置くことができました:(注:最初にあなたのUSBキーがマウントされていないことを確認してください!)

    dd if=live-image-AMD64.hybrid.iso of=/dev/sdX
    

    次に、永続化のためにthirdパーティションを追加します。

    fdisk /dev/sdX <<<$'n\np\n\n\n\nw'
    

    unionを使用して永続性をフォーマットし、準備します。

    mkfs.ext4 -L persistence /dev/sdX3
    mount /dev/sdX3 /mnt
    echo '/ union' >/mnt/persistence.conf
    sync
    umount /mnt
    

    取り出して試してください...

暗号化された永続性を備えたDebianライブ

  1. 自分のDebianをライブでビルドしますが、暗号化されたpersistenceを使用します。

    暗号化された持続性でrootfs /を使用して起動するには、dm-cryptモジュールand関連バイナリをinitrd(初期RAMディスク)設定CRYPTSETUP=y/etc/initramfs-tools/hooks/...に追加して.

    コメント行を削除するための小さなXARGS関数を書きました:

    XARGS() { sed -ne '/#/d;s/ \t//g;H;${x;s/\n/ /g;s/^ //;p}'; }
    

    最初にbootparamsを設定し、永続化とcryptsetupのローカリゼーションと引数を指定します。

    ExtraBootParams=$(XARGS <<eobp
        boot=live
        config
        locales=ed_WT
        keyboard-layouts=ed
        keyboard-variant=wt
        persistent=cryptsetup
        persistence-encryption=luks
        persistence
    eobp
    )
    

    今あなたのパッケージリスト:

    PackageList=$(XARGS <<-eopl
        gnome
        gnome-core
        # gnome-full
        # debian-forensics
        debian-installer-launcher
    eopl
    )
    

    そしてあなたのパッケージの選択:

    Packages=$(XARGS <<-eopk
        cryptsetup
        cryptsetup-initramfs
        debian-installer-launcher
        firmware-linux-nonfree
        firmware-linux-free
        less
        ssh
    #   openvpn
    #   xtightvncviewer
        gsmartcontrol
        smartmontools
        partclone
        ntfs-3g
        task-gnome-desktop
        user-setup
        Sudo
        apt-utils
    eopk
    )
    

    もちろんcryptsetupは必須です! ;-)

    lbの非常に最初のステップ:初期ツリーを作成します。

    lb config --architectures AMD64 -d buster --debian-installer-gui \
        true --archive-areas 'main contrib non-free' \
        --bootappend-live "$ExtraBootParams" 
    

    今、あなたは小さな木を持っています、あなたは次のことができます:

    printf "%s\n" > config/package-lists/standard.list.chroot \
        $Packages $PackageList
    

    OK、次の2つのコマンドには時間がかかります! (私のホストでは約40フィート)

    lb bootstrap ; lb chroot
    

    これでモジュールとバイナリを追加できます:

    echo dm-crypt >> chroot/etc/initramfs-tools/modules
    
    sed '/CRYPTSETUP=/s/^#//;s/=.*/=y/' -i \
        chroot/etc/cryptsetup-initramfs/conf-hook 
    ln -s ../../cryptsetup-initramfs/conf-hook \
        chroot/etc/initramfs-tools/hooks/cryptsetup
    chroot chroot live-update-initramfs -u
    

    次に、最終段階を実行します(さらに時間がかかる〜25 '):

    lb installer ; lb binary
    

    注:cryptsetup: WARNING: Couldn't determine root deviceをお読みいただければ問題ありません。これは、cryptsetupinitrdにインストールされていることを意味します。

    すべて問題なければ、自分のDebian liveを見つけることができます:

    ls -l *.iso
    -rw-r--r--  1 root root 1511817216 sep  7 15:32 live-image-AMD64.hybrid.iso
    
  2. USBキーにインストール

    'iso-hybrid'umageには、UEFIの2つのパーティションが既に含まれており、両方の方法でライブ混合されています[〜#〜] efi [〜#〜 ][〜#〜] bios [〜#〜]が起動します。

    file live-image-AMD64.hybrid.iso
    live-image-AMD64.hybrid.iso: DOS/MBR boot sector; partition 2 : ID
    =0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsect
    or 708, 5696 sectors
    

    あなたは単にあなたのUSBキーを置くことができました:(注:最初にあなたのUSBキーがマウントされていないことを確認してください!)

    dd if=live-image-AMD64.hybrid.iso of=/dev/sdX
    

    空き領域を使用して新しいLinuxパーティションを追加します。

    fdisk /dev/sdX <<<$'n\np\n\n\n\nw'
    

    これにより、USBキーの空き領域を使用してパーティション3が作成されます。

    次に、暗号化されたパーティションを準備します

    cryptsetup -q luksFormat /dev/sdX3
    

    パスフレーズを入力

    cryptsetup -q luksOpen /dev/sdX3 persist 
    

    パスフレーズをもう一度入力してください

    mkfs.ext4 -L persistence /dev/mapper/persist
    mount /dev/mapper/persist /mnt
    echo '/ union' >/mnt/persistence.conf
    sync
    umount /mnt
    cryptsetup luksClose persist
    

それで全部です。

eject /dev/sdX
7
F. Hauri

宛先としてHDDではなくusbデバイスを選択して、Debianの新規インストールを作成してみませんか?あなたのUSBにはどのような容量がありますか?

Debian LXDEをインストールし、4GBのUSBメモリスティックで実行しています。いつでもシステムを更新し、必要なときにパッケージをインストールします。

4
YoMismo

クローンとDebianの永続的なライブ

クローン (各バイトをそのままコピーし、1対1のコピーを作成する)は、LinuxハイブリッドISOファイルからブートドライブ(ライブドライブまたはインストールドライブ)を作成するための非常にシンプルで信頼性の高い方法です。

クローンされたDebian isoファイルを永続化する従来の方法はありません。これは、読み取り専用のファイルシステムISO9660(および読み取り専用の「パーティションテーブル」)を持っているためです。

Mkusbの使用(BIOS/UEFI)

mkusb を使用して、DebianライブISOファイルから永続的なライブドライブを作成することは可能です(そして、私はかなりシンプルです)。 mkusbはDebian 8以降をサポートしており、現在のバージョンのmkusb(バージョン12.3.3以降)を使用する必要があります。

mkusbは、パーティションテーブルと5つのパーティションを作成します。

  1. Windowsコンピューターとデータを交換するためのNTFSパーティション(オプションサイズ)
  2. 拡張パーティションまたはbios_grubパーティション
  3. grubで起動するためのFAT32ブートパーティション(UEFIモードとBIOSモードの両方)
  4. ISOファイルのクローンを含むISO9660パーティション
  5. ext変更(およびファイル)が保存される永続化用のパーティション

mkusbは、次の調整を自動的に行います。

  • 起動オプションpersistence(Ubuntuのようなpersistentではありません)
  • パーティション#5のラベルpersistence(Ubuntuのようなcasper-rwではありません)
  • パーティション#5の最上位にコンテンツpersistence.confを含むファイル/ union

この構造は、mkusbバージョン12、エイリアスdus-persistentを使用すると、bashシェルスクリプトmkusb-dusによって作成されます。すべての詳細が必要な場合は、mkusbをインストールしてdus-persistentの内容を読み取るか、または phillw.net/isos/linux-tools/mkusb/dus-persistent から直接読み取ってください。

Mkusbのデフォルト設定はDebian 8、9、10で使用でき、永続的なライブドライブはBIOSモードおよびUEFIモードで起動したときに機能します(ただし、セキュアブートでは機能しません)。

(以前のバージョンのmkusb 12.3.2では、UEFIモードのDebian 10の「設定」メニューで「usb-pack-efi」を手動で設定する必要があります。)

手動セットアップの使用(UEFIのみ)

UEFIのみのブートフラッシュドライブが必要な場合は、インストーラーはまったく必要ありません。

FAT32でフラッシュドライブをフォーマットし、ブートフラグをオンに設定するだけです。次に、7Zipなどのお気に入りの抽出ツールを使用して、ISOを抽出してFAT32パーティションにコピーします。詳細は Do itself を参照してください。

私はこの方法を標準のライブisoファイル(小さい、グラフィックデスクトップ環境なし)で検証しました。

debian-live-10.0.0-AMD64-standard.iso

このようにして、Debian 10(64ビット)でUSBブートドライブを作成できます。ライブのみであり、UEFIモードでブートします。

  • Isoファイルのファイルを保存するのに十分な大きさのFAT32パーティションを作成します(isoファイルのサイズに約5%を追加します)
  • FAT32パーティションをマウントする
  • Isoファイルのコンテンツ(すべてのファイルを含むディレクトリツリー)をFAT32パーティションに抽出します。

これで、ライブのみのUSBブートドライブができました

  • ファイルのpersistenceで始まる行の末尾までlinuxを編集します

    /path/to/mountpoint/boot/grub/grub.cfg
    
  • ext2パーティションを未割り当てスペース(FAT32パーティションの後ろ)に作成します

  • ext2パーティションにラベルpersistenceを付けます
  • ext2パーティションをマウントします
  • / unionファイルシステムのファイルpersistence.confext2を書き込みます

  • アンマウントする前にフラッシュドライブ上のすべてのパーティションをアンマウント、またはreboot

これで、Debian 10で永続的なライブUSBドライブができました。


永続的なライブドライブ内から見たコマンド出力:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G  9.0M  1.6G   1% /run
/dev/sdb1       4.0G  826M  3.2G  21% /run/live/persistence/sdb1
/dev/loop0      610M  610M     0 100% /run/live/rootfs/filesystem.squashfs
tmpfs           7.8G     0  7.8G   0% /run/live/overlay
/dev/sdb2        11G   38M   11G   1% /run/live/persistence/sdb2
overlay          11G   38M   11G   1% /
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
tmpfs           7.8G     0  7.8G   0% /tmp
tmpfs           1.6G     0  1.6G   0% /run/user/1000

$ lsb_release -a
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:    10
Codename:   buster

$ lsblk -fm /dev/sdb
NAME   FSTYPE LABEL       UUID                                 FSAVAIL FSUSE% MOUNTPOINT                            SIZE OWNER GROUP MODE
sdb                                                                                                                14.8G             brw-rw----
├─sdb1 vfat   USBBOOT     7176-C538                               3.2G    20% /usr/lib/live/mount/persistence/sdb1    4G             brw-rw----
└─sdb2 ext2   persistence 2b324439-d63e-4a19-bf57-d49ecb881828     10G     0% /usr/lib/live/mount/persistence/sdb2 10.8G             brw-rw----

overlayのサイズが/dev/sdb2のサイズと一致していることがわかります。これは、永続性が機能していることを示しています。

mkusb-minpの使用(BIOS/UEFI)

mkusb-minp を使用して、Debianから永続的なライブドライブを作成することは可能です(そして私はかなり単純です)ライブISOファイル。 mkusb-minpは、Debian 10以降をサポートしています。この簡単なシェルスクリプトはmkusb-minから開発されました。どちらもクローンプロセスを「安全ベルト」で囲んで、間違ったデバイスへの書き込みを回避します。

これは、PPA経由でソフトウェアを追加したくない場合、または一般的に理解できるツールのみを使用したい場合に適したオプションです。

4
sudodus

まず第一に-私はLinuxの男ではありません-平均的なジョーよりもそれに慣れているだけです。

Yummiインストーラーを使用して、Debian 10 usb(私が置いていた16GBスティックを使用しました)ブートスティックを作成し、そこからブートできます。

一度、大きなUSBスティックを別のポートに挿入し(128GBのSamsung FITフラッシュドライブで話すときにこれを実行しています)、デスクトップの[Debianのインストール]アイコンをダブルクリックします。

パーティション設定に到達するまで通常のものを実行し、次に手動を選択します。手動のパーティション設定画面で、128GB USBスティックが選択されていることを確認します(または使用するUSB​​スティックのいずれか-使用しているPCのローカルドライブではないことを確認してください)これを実行し、ライブDebianが現在実行されているのが16GB USBスティックではないことを確認します)

完了したら、128GB USBスティックから既存のパーティションをすべて削除し、次の3つのパーティションを作成します。

500 MB/boot/efi 1942MB linuxswap残りのext2(私のものは119GB)

---- USBスティックにext3や4は使用しません。理由はわかりませんが、数年前にLinuxの人から言われたところ、私はそれにこだわっていました。誰か知っている人がいたら教えてください。

そして最後に、ブートローダーが適切なUSBスティックにインストールされることを確認します。これは、パーティションを作成したときと同じページにあり、見落としがちです-私にとっては、一番下にあり、私はこれを行うために使用していたPCのローカルSDDからSamsung 128GB FITフラッシュドライブに変更します。それから、次は...(私の場合)約1時間ほど待ちます。

Debianライブロックの場合、パスワードはもちろん引用符なしで「ライブ」です。

入力中に終了したので、Samsung 128GB FIT USBフラッシュドライブから実行している本格的なDebian 10システムに再起動してログオンします。約と。私が使用していた10分間、ディスクスペースが本来あるべき状態(LOTS)であることを確認でき、NvMeローカルドライブよりも少し遅いが、通常の7200RPM HDDよりも高速であるように見えます。

行くよ。

1
Jon