USBフラッシュドライブにインストールしてどこにでもDebianを使用したいのですが、設定を保存し、再起動時にパッケージを失うことなくパッケージをインストール/更新できるようにする方法がわかりません。
だから私はこれからハイブリッドISOイメージをダウンロードしました link そして、私は [〜#〜] faq [〜#〜] の指示に従いました:
dd if=image.iso of=/dev/sdb bs=4M; sync
このコマンドは、ISOイメージと同じサイズ(8 GBのうち1.3 GB)のパーティションを作成することによってイメージをフラッシュドライブにコピーし、残りのフラッシュドライブは割り当てられていません。
私はこれを行う方法を検索しましたが、すべてのチュートリアルは異なるアプローチを使用しており、それらのいくつかは古く、古いusb-hddイメージについて話します。
では、このハイブリッドイメージをフラッシュドライブにインストールするにはどうすればよいですか?
パッケージをインストールして設定を保存できるようにするには、フラッシュドライブをどのようにパーティション化すればよいですか? dd
を使用せずにこのイメージをインストールするにはどうすればよいですか?
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 splash
をpersistence
に厳密に置き換えることにより、ライブバイナリファイルの変更されたコピーが作成されます。 Okこれは、grubブートコマンドがこの2つの単語を一緒に含む場合にのみ機能します.
ただし、永続化後のスペースを見逃さないように注意してください。
"splash quiet" -> 12 characters
"persistence " -> 12 characters
または、バイナリが壊れます。
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であるため、ブートコマンドを変更することはできません。
ブートコマンドラインにpersistence
を追加するだけで、他に何もできません!? FATとsyslinux
を使用する方法はありますが、多くのデータ操作があります。それは長く、私はこれがあまりよくないことに気づきます。私は好む:
もっと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
'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
取り出して試してください...
暗号化された持続性で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
をお読みいただければ問題ありません。これは、cryptsetupがinitrd
にインストールされていることを意味します。
すべて問題なければ、自分のDebian liveを見つけることができます:
ls -l *.iso
-rw-r--r-- 1 root root 1511817216 sep 7 15:32 live-image-AMD64.hybrid.iso
'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
宛先としてHDDではなくusbデバイスを選択して、Debianの新規インストールを作成してみませんか?あなたのUSBにはどのような容量がありますか?
Debian LXDEをインストールし、4GBのUSBメモリスティックで実行しています。いつでもシステムを更新し、必要なときにパッケージをインストールします。
クローン (各バイトをそのままコピーし、1対1のコピーを作成する)は、LinuxハイブリッドISOファイルからブートドライブ(ライブドライブまたはインストールドライブ)を作成するための非常にシンプルで信頼性の高い方法です。
クローンされたDebian isoファイルを永続化する従来の方法はありません。これは、読み取り専用のファイルシステムISO9660(および読み取り専用の「パーティションテーブル」)を持っているためです。
mkusb を使用して、DebianライブISOファイルから永続的なライブドライブを作成することは可能です(そして、私はかなりシンプルです)。 mkusbはDebian 8以降をサポートしており、現在のバージョンのmkusb(バージョン12.3.3以降)を使用する必要があります。
Debianにmkusbをインストールするには、 this link で詳細を参照してください。
mkusbで作成された永続的なライブドライブ に関するヒントがあります。
このリンク(Debianはリストされているディストリビューションの1つです) も参照してください。
mkusbは、パーティションテーブルと5つのパーティションを作成します。
bios_grub
パーティションgrub
で起動するためのFAT32ブートパーティション(UEFIモードとBIOSモードの両方)ext
変更(およびファイル)が保存される永続化用のパーティションmkusbは、次の調整を自動的に行います。
persistence
(Ubuntuのようなpersistent
ではありません)persistence
(Ubuntuのようなcasper-rw
ではありません)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のみのブートフラッシュドライブが必要な場合は、インストーラーはまったく必要ありません。
FAT32でフラッシュドライブをフォーマットし、ブートフラグをオンに設定するだけです。次に、7Zipなどのお気に入りの抽出ツールを使用して、ISOを抽出してFAT32パーティションにコピーします。詳細は Do itself を参照してください。
私はこの方法を標準のライブisoファイル(小さい、グラフィックデスクトップ環境なし)で検証しました。
debian-live-10.0.0-AMD64-standard.iso
このようにして、Debian 10(64ビット)でUSBブートドライブを作成できます。ライブのみであり、UEFIモードでブートします。
これで、ライブのみのUSBブートドライブができました
ファイルのpersistence
で始まる行の末尾までlinux
を編集します
/path/to/mountpoint/boot/grub/grub.cfg
ext2
パーティションを未割り当てスペース(FAT32パーティションの後ろ)に作成します
ext2
パーティションにラベルpersistence
を付けますext2
パーティションをマウントします/ union
ファイルシステムのファイルpersistence.conf
にext2
を書き込みます
アンマウントする前にフラッシュドライブ上のすべてのパーティションをアンマウント、または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経由でソフトウェアを追加したくない場合、または一般的に理解できるツールのみを使用したい場合に適したオプションです。
まず第一に-私は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よりも高速であるように見えます。
行くよ。