追加のデータパーティションをそのまま維持し、アクセス可能に保ちながら、ブータブルUSBでLinuxディストリビューションISOを置き換える方法は?

追加のデータパーティションをそのまま維持し、アクセス可能に保ちながら、ブータブルUSBでLinuxディストリビューションISOを置き換える方法は?

USBメモリースティックはますます大きくなっています。 USB起動が可能なほか、データを保存したいです。私は次の方法を知っています。 1. ISO を USB スティックに書き込みます。 2. Gnome Diskを介してパーティションを追加します(両方ともGUI)。

これで、追加データをそのまま維持し、アクセス可能に保ちながらISOを交換できるようになります。どうすればいいですか?ディスク上の16進データを手動で編集しないことが最善ですが、この解決策はまったく解決策がないよりも優れています。ティア

以下のように試しましたが失敗しました。私は読んだ標準ツールを使用してディスク全体のパーティションレイアウトをコピーする方法sfdisk使用場所をおすすめします。

私が見たほとんどのISOは次のとおりです。

sfdisk --dump linuxmint-20.2-cinnamon-64bit.iso 
label: dos
label-id: 
device: linuxmint-20.2-cinnamon-64bit.iso
unit: sectors
sector-size: 512

linuxmint-20.2-cinnamon-64bit.iso1 : start=           0, size=     4222944, type=0, bootable
linuxmint-20.2-cinnamon-64bit.iso2 : start=         640, size=        7936, type=ef

これは、一部のパーティションテーブルsfdiskが書き換えることができないためです(0から始めることはできません)。

ただし、次のようにパーティションを作成した後gnome-disks

sudo sfdisk --dump /dev/sda
label: dos
label-id: 
device: /dev/sda
unit: sectors

/dev/sda1 : start=     8433664, size=    57104384, type=83
/dev/sda2 : start=        4800, size=        8496, type=ef
# (note: the ISO I've tried to change from had start=4800 for ef).

そのため、新しい行を保存し/dev/sda1、パーティションを作成し、確認し、データパーティションを削除して a.partUSBに新しいISOを書き込んで実行しました(以下の部分の出力を参照)。 「パーティションテーブルが変更されました」というメッセージが表示された場合、私のデータは新しいパーティションテーブルに分割されました。ただし、USBスティックはもう起動しません。gnome-diskssfdisk --dumpgnome-diskssfdisk --append /dev/sda < a.part

/dev/sda3: Created a new partition 3 of type 'Linux' and of size 24.4 GiB.
Partition #3 contains a btrfs signature.
/dev/sda4: Done.

New situation:
Disklabel type: dos
Disk identifier: 

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda2           4800    13295     8496  4.2M ef EFI (FAT-12/16/32)
/dev/sda3       14368768 65538047 51169280 24.4G 83 Linux

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

追加(Ventoy関連):

私はすでにVentoyを使用しています。私はまだ私の好きなシステムにUSBを装着して他のことをしながらスティックを接続して電源を押すと、システムが自動的にロードされるようにしたいと思います。また、Vetroy GUIが一部の古いコンピュータで動作しないことを覚えているので、直接起動可能な専用スティックが再び役に立ちます。

ただし、Ventoyにデフォルトの指定されたファイルをロードするオプションがある場合(GRUBブートメニューなどの遅延が発生する)、これらの問題は軽減される可能性があります。インターネット検索と閲覧では見つかりません。https://www.ventoy.net/en/faq.html。 Ventoyは内部的にGRUBを使用して起動しているようです。デフォルトの起動オプションを追加できることを確認するために設定ファイルを開きました。

答え1

まず良いところ:最新のコンピュータは、10年以上にわたりGPTでパーティション化されたUSBデバイスでUEFIブートをサポートしてきたので、ブート可能にするために必要なメモリースティックのフォーマット/パーティションに特別なものはまったくありません!

必要なのは、EFI/boot/boot{architecturename}.efiブートローダファイルを含むFAT32またはexFAT形式のパーティションがあることです。これはx86_64に関するものであると仮定しているため、EFI/boot/bootx64.efiブートローダはLinuxカーネルを直接ロードして起動するまで任意の操作を実行できます。 USBスティックからシングルインストール、GRUBロード、および多くのLinux(または他のオペレーティングシステム)の1つをCDROMディスクイメージ(実際には.isoファイルの名前)から起動すること - これはまだ基本であることが歴史的に疑問に思っています。 USBスティックにインストーラをインストールする方法)、すべてのファイルシステムドライバでUSBスティック全体を分析し、このLinuxから起動するLinuxのリストを提供できる小型Linuxシステムを起動することも技術的に非常に合理的です(例: kexecを使用)。

ストレージから.isoファイルを検索し、起動するファイルを選択できるようにするいくつかの「マルチブートアクティベータ」があります。これらの多くはビット回転方式です。管理者がUSBスティックを使用してクライアントPCに何かを起動またはインストールしたときは終わりました。ネットワークブートはかなり簡単になり、最新のオペレーティングシステムは合理的なリモートアクセスとアップデートを提供します。サーバービジネスでは、Webコンソールを介してアップロードされたファイルを実行できるボード管理コントローラを持つことは正直なところ、過去5年間にこれらの機能をまったく使用していません。

ほとんどは実際の起動にGRUBを使用します。最も一般的で、おそらくまだ最もよくサポートされているのは次のとおりです。ベントイ。 Ventoyをスティックに一度インストールする必要があります(必須ではありませんが、サイレントインストールを使用せずにこれを行う方法を理解しない限り、スティックのデータが破損するのが最も簡単です)。既存の杖に手動で挿入);

./Ventoy2Disk.sh -i -g /dev/sdYOURUSBSTICK

タスクを実行します。

その後、isoファイルをexfatパーティションに入れるだけです(実際には別の場所に置き、GRUBで他のパーティションを手動で参照することもできます)。

スティック内の他のパーティションに対してすべての操作を実行できます。

関連情報