USBフラッシュドライブに複数のLinuxディストリビューションをインストールする方法は?

USBフラッシュドライブに複数のLinuxディストリビューションをインストールする方法は?

複数のLinuxシステム(ライブバージョンを除く)を含むように分割されたUSBスティックを設計したいと思います。具体的には、同じUSBスティックに少なくとも2つの異なるバージョンのFedora、つまり64ビットアーキテクチャ用のFedora 24と32ビットアーキテクチャ用のFedora 8があります。私の意図は、ラップトップのスペースを消費せずに(他のパーティションや仮想マシンを介して)作業に必要なマシン環境を複製し、USBスティックをラップトップに接続してOSを起動することです。

これまで、GRUB2と一緒に32 Go USBスティックにFedora 24をインストールして、Fedora 24ブートとラップトップオペレーティングシステムのいずれかを選択してブートすることができました。どちらもそれぞれ10,01 Gioと500 Mioの2つのパーティションを使用しているため、他のLinuxディストリビューションで使用する予定の未割り当て領域は20 Go未満です。 USBスティックの現在の状態をよりよくプレビューできるように、GPartedを使用してUSBスティックを読み取るときに見た内容は次のとおりです。

パートGショー

問題は、USBスティックを挿入するときに起動メニューからFedora 8を選択できるようにGRUB2を更新するときにFedora 8をUSBスティックに安全に追加する方法がわからないことです(特に私が覚えているように、Fedora 8は以前のGRUB2よりも少し古いです)。特に、次のような質問があります。

  • 後でより多くのオペレーティングシステムのためのスペースを確保するために、Fedora 24を持つパーティションのサイズを変更するのは安全ですか?
  • USBスティックに新しいパーティションを作成し、ライブバージョンではなく新しいOSをインストールするために従う必要がある一般的な手順は何ですか? (必要に応じて、ライブバージョンで2番目のUSBスティックを使用できます。)
  • リストに新しいオペレーティングシステムを表示するためにUSBスティックのGRUB2をどのように更新しますか?

回答いただきありがとうございます。

ベストアンサー1

USBフラッシュドライブに複数のLinuxディストリビューションをインストールする方法は?

考える:

  • USBドライブからBIOSを起動する
  • マスターブートレコードパーティション
  • GRUB ブートローダ

ツール:

概要:

  • USBドライブのパーティションテーブルとブート履歴を消去する
  • USBドライブにパーティションを作成する
  • 仮想マシンでUSBドライブ用のオペレーティングシステムを作成する
  • clonezillaを使用した新しいオペレーティングシステムの複製
  • オペレーティングシステムをUSBドライブに復元する
  • GRUB2のアップデートとカスタマイズ

ステップ1

ツールを準備し、USBに挿入するオペレーティングシステム、パーティションサイズ、スワップパーティションを使用するかどうかを決定します。

USBは合計32GBのようです。

パーティションを設定してみましょう。

Microsoft の相互運用性に使用される NTFS 16GB パーティション。

Ubuntu14 32ビットサーバー4GB ext4(1GBスワップパーティションを含む)

Ubuntu16 64ビットサーバー8GB ext4(4GBスワップパーティションを含む)

メモ:両方のオペレーティングシステムでスタンバイモードまたは休止状態モードを使用しない場合は、スワップパーティションを共有するか、各オペレーティングシステムパーティションでスワップファイルを使用することもできます。

パーティションレイアウト:

  • P1 - 15GB NTFS
  • P2 - 4GB拡張4
  • P3 - 8GB拡張4
  • P4 - 拡張
  • E1 - 4GBスワップ
  • E2 - 1GBスワップ

メモ:BIOSとMBRは4つのプライマリパーティションしか表示できません。この制限を克服するには、単一のプライマリパーティションの代わりに拡張パーティションを使用します。


ステップ2

USBドライブを準備してください。

「test」という新しい仮想マシンを作成します。この仮想マシンはハードドライブを必要とせず、必要もありません。これによりUSBドライブが作成されます/dev/sda。これにより、後で作業が簡単になります。

Parted Magic ISOをVMに接続し、ISOから起動します。

USBドライブを接続し、「仮想マシンに転送」

USBがVMに表示されていることを確認し、デバイス番号をメモします。

デスクトップアイコンからPartition Editorを起動します。

私の設定のUSBドライブは次のとおりです。/dev/sda

パーティションテーブルを0にします。これにより、デバイスのすべての情報が削除されます。アーカイブするデータをコピーすることから始めます。

  • 誤ったデバイスを初期化するとコンピュータが起動しない可能性があるため、正しいデバイス(たとえば/ dev / sda)が必要です。
  • dd if=/dev/zero of=/dev/sda bs=512 count=4

GPartedでドライブリストを更新する(ctrl + R)

デバイス - > "msdos"パーティションテーブルの作成

パーティションの作成:

メモ:最後に、残りのスペースを「使用」するためにNTFSパーティションを作成しました。

  • スペースのバックエンドに拡張パーティションを作成します。 5GBまたは5120
  • 拡張パーティションに2つのスワップパーティションを作成します。 Linux スワップを入力します。 4GB、1GB。拡張パーティションがほぼいっぱいです。
  • 未割り当て領域の末尾に2つのオペレーティングシステムパーティションを作成します。 ext4と入力してください。 4GB、8GB。
  • 4GBに「Ubuntu14」というラベルを付けます(復元時にラベルが変更されるため、識別に役立ちます)。
  • 8GBに「Ubuntu16」というラベルを付けます(復元時にラベルが変わるため、識別に役立ちます)。
  • ドライブの先頭に割り当てられていない残りの領域を使用してNTFSデータパーティションを作成します。 NTFSと入力してください。
  • NTFSを「データ」としてマーク

変更承認。この程度に近いと見なければなりません。私のUSBドライブは1TBなので、NTFSパーティションははるかに大きいです。 GPartedスクリーンショット


ステップ3

USBドライブに復元するオペレーティングシステムを準備します。

新しい仮想マシンを作成し、オペレーティングシステムをインストールします。この例では、Ubuntu14サーバーは32ビットです。 VMインストールドライブをUSBのパーティションサイズより小さく設定しました。 4GB。インストール中にLVMの代わりにMBRを使用し、インストール時にスワップパーティションが作成されるようにしました。

新しい仮想マシンを作成し、追加のオペレーティングシステムをインストールします。この例では、Ubuntu16サーバーは64ビットです。 VMインストールドライブをUSBのパーティションサイズより小さく設定しました。 8GB。インストール中にLVMの代わりにMBRを使用し、インストール時にスワップパーティションが作成されるようにしました。

各オペレーティングシステムに必要な変更、更新、インストールを実行します。

新しい仮想マシンのシャットダウン

新しい仮想マシンの複製を開始します。

各新しいVMに接続し、pmagic_2013_08_01.isoISOから起動します。

各仮想マシンのパーティションを表示します。インストールされているオペレーティングシステムの場所を記録してください。両方でなければなりません/dev/sda1。 (時間に合わせて調整していない場合)

次に、デスクトップアイコンでclonezillaを使用して各オペレーティングシステムを複製します。クローンされたイメージをSSH経由でデスクトップに配置するので、clonezillaを起動する前にネットワークを設定してください。

クローンジラオプション:

  • device-image - デバイス/dev/sda1をイメージに複製します。
  • ssh_server - 私のデスクトップに画像を配置します。手の届くところに保管してください。
  • 初心者モード - ほとんどのデフォルト値が機能します。
  • saveparts - OSパーティションのみが必要です。
  • 後で認識できる名前を画像に割り当てます。
  • sda1 - オペレーティングシステムのパーティションを選択します。ただ選択肢でなければなりませんが、そうではありません。
  • ソースファイルシステムのスキャン/修復をスキップする - VMはすべて清潔で使用可能にする必要があります。
  • はい、保存した画像を確認してください。複製されたイメージが正しいファイルであることを確認してください。プロンプトに従ってください。
  • 待つ。
  • 完全! - このとき電源を切ってください。

ステップ4

オペレーティングシステムイメージをUSBドライブに復元します。

仮想ドライブが接続されていない「テスト」VMに戻ってから起動しますpmagic_2013_08_01.iso

USBドライブを「テスト」仮想マシンに転送します。

デスクトップアイコンからPartition Editorを起動します。我々は再びここに戻った。スクリーンショットをご覧ください。

USBパーティションを持つオペレーティングシステムをイメージパーティションと一致させます。

Ubuntu 14:

  • ミラーパーティション--/dev/sda1
  • USBパーティション--/dev/sda3

Ubuntu 16:

  • ミラーパーティション--/dev/sda1
  • USBパーティション--/dev/sda2

メモ: デフォルトでは、このバージョンのclonezillaはイメージを元のものと同じパーティションに復元します。/dev/sda1到着する/dev/sda1。これは私たちが望むものではないので、このハッキングは画像をUSBパーティションに復元します。

別のクローン作成されたパーティションにイメージを復元するclonezillaハック:

新しいパーティションIDを使用して、イメージディレクトリのすべてのファイル名を変更します。

/home/jc/clonezilla_images/ubuntu14/sda1*から/home/jc/clonezilla_images/ubuntu14/sda3*へ

/home/jc/clonezilla_images/ubuntu14/parts ファイルの内容を変更します。 「sda1」を「sda3」に交換

Ubuntu16と同じで、数値sda2を調整します。

メモ:VMとUSBのデバイスsdaで始まりました。他のデバイス(例:/ dev / sdb)を使用している場合は、より多くのファイルを変更する必要があります。同じデバイスで両方を使用する方が簡単です。 /dev/sda。

clonezilla経由で画像をUSBドライブに復元する

クローンジラオプション:

  • device-image - イメージからデバイス/ dev / sda1を復元します。
  • ssh_server - イメージをどこに置いても構いません。
  • 初心者モード - ほとんどのデフォルト値が機能します。
  • Restoreparts - 個々のパーティションを復元します。
  • 回復する画像を選択
  • イメージの正しいUSBパーティションを選択してください - Ubuntu14からsda3まで。
  • プロンプトに従ってください。
  • 待つ。
  • コマンドラインプロンプトを入力します。 - 回復する画像があります。

clonezillaを再起動し、すべての画像に対して繰り返します。

復元の間、私のUSBは仮想マシンからマウント解除されたので、USBドライブを再度通過する必要がありました。


ステップ5

USBドライブにGRUBを取り付ける

Grubブートローダは、USBドライブの最初の512バイトにインストールされます。ローダーはgrub.cfgファイルを指します。 Ubuntu16パーティションにパーティションを配置しましょう。することができますどこかにグラップはそれを読むことができます。

これにはホストオペレーティングシステムを使用します。

仮想マシンでリアルタイムオペレーティングシステムを使用してこれを行うことができます。

grub2を含む最新のLinuxオペレーティングシステムを使用する必要があります。

USBを接続します。

私のUSBドライブは現在デバイスとしてマウントされています/dev/sdf。お使いのデバイスは異なります。

grub.cfgパーティションが存在する場所にパーティションをインストールします。

メモ:回復された各オペレーティングシステムには、仮想マシンから起動可能なオペレーティングシステムであるため、grub.cfgファイルがあります。 USB ブートローダが指す grub.cfg を指して修正することを確認します。

Ubuntu16 ext4

sudo mount /dev/sdf2 /media/usb_u16

USBデバイスにgrubブートローダをインストールする

sudo grub-install --recheck --boot-directory=/media/usb_u16/boot /dev/sdf

これにより、設定ファイルポインタがUbuntu16パーティションブートディレクトリに配置されます。 Ubuntuのユニバーサルロケーション。どこにいても構いません。

インストールが完了しました。エラーは報告されていません。

grub.cfgファイルをテンプレートにします。

sudo grub-mkconfig --output=/media/usb_u16/boot/grub/grub.cfg

ここで重要なのは、grub-mkconfigUSBドライブを検出し、USBドライブにインストールしたオペレーティングシステムの起動エントリを作成することです。不要なのは、ホストにマウントされているすべてのドライブを調べて、そのドライブのエントリを作成することです。

今すべてを削除し、USBブートをテストします。

すべてが正常な場合は、USBオペレーティングシステムから起動できます。戻らないと…


ステップ6 カスタムUSBドライブのgrub.cfg

このUSBドライブを起動すると、USBが別のPCから起動しても、ホストPCにオペレーティングシステムが表示されます。この問題を解決しましょう。

より多くの情報を集めましょう。

各パーティションにはUUID番号が割り当てられます。 USBドライブのUUIDを取得します。

blkid

/dev/sdf2: UUID="078ecc53-f73c-4cc7-9d45-f78aa534b7c5" TYPE="ext4" PARTUUID="00005785-02"
/dev/sdf3: UUID="a4654333-ee62-4dac-8c09-79a034e3125d" TYPE="ext4" PARTUUID="00005785-03"
/dev/sdf4: LABEL="data" UUID="667308CA28B6BB86" TYPE="ntfs" PARTUUID="00005785-04"
/dev/sdf5: UUID="8646e3f8-4f5c-40d4-a409-c4d65bf98d21" TYPE="swap" PARTUUID="00005785-05"
/dev/sdf6: UUID="61b8680c-22c9-4efc-98a1-2aaaa4a7f304" TYPE="swap" PARTUUID="00005785-06"

あなたは違うでしょう。

後で使用するために2つのスワップパーティションUUIDを保存します。/etc/fstab起動時に自動的にインストールされるようにファイルに追加します。

2つのオペレーティングシステムパーティションUUID:

/dev/sdf2: UUID="078ecc53-f73c-4cc7-9d45-f78aa534b7c5" -- Ubuntu16
/dev/sdf3: UUID="a4654333-ee62-4dac-8c09-79a034e3125d" -- Ubuntu14

これら2つのファイルをgrub設定ディレクトリmemdiskにコピーし、イメージがある場合はイメージをコピーします。super_grub2_disk_hybrid_2.02s9.isosplash.jpg

Ubuntu16 ext4

sudo mount /dev/sdf2 /media/usb_u16

sudo cp ./memdisk /media/usb_u16/boot

sudo cp ./super_grub2_disk_hybrid_2.02s9.iso /media/usb_u16/boot

sudo cp ./splash.jpg /media/usb_u16/boot

すでに作成されたバックアップコピーを作成します。grub.cfg

sudo mv /media/usb_u16/boot/grub/grub.cfg /media/usb_u16/boot/grub/grub.cfg.orginal

カスタムメイドgrub.cfg

sudo vi /media/usb_u16/boot/grub/grub.cfg

簡単に言えば、grub.cfg.orginalから最小限のものをコピーするだけです。 grubはinsmod ...コンテンツを設定し、gfxmode = ...コンテンツとブートエントリを表示します。上記のUUID番号を検索すると、スタートアップアイテムを見つけることができます。サブメニュー項目を含むすべての項目をコピーするか、基本項目のみをコピーします。

起動エントリがなくても、ホスト上のすべてのオペレーティングシステムから起動できますmemdisksuper_grub2_disk_hybrid_2.02s9.iso

これが正しいアプローチではない理由はいくつかありますが、効果があります。

例を修正グラップ構成ファイルこのUSBドライブの場合。

grub.cfgカスタムファイルを上書きしようとするので、カスタムファイルをバックアップしてください。

sudo cp /media/usb_u16/boot/grub/grub.cfg /media/usb_u16/boot/grub/grub.cfg.custom


ステップ7

インストールされたオペレーティングシステムの調整

  • スワップパーティションUUIDを次に追加します。/etc/fstab
  • USB(NTFSデータ、その他OS ext4)のすべての自動マウントパーティション/etc/fstab
  • Ubuntu では、変更に基づいてデフォルトの grub エントリを調整してオペレーティングシステムが更新されると、変更は新しい grub メニューに伝播されます。

テストを見て!

おすすめ記事