複数の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スティックを読み取るときに見た内容は次のとおりです。
問題は、USBスティックを挿入するときに起動メニューからFedora 8を選択できるようにGRUB2を更新するときにFedora 8をUSBスティックに安全に追加する方法がわからないことです(特に私が覚えているように、Fedora 8は以前のGRUB2よりも少し古いです)。特に、次のような質問があります。
- 後でより多くのオペレーティングシステムのためのスペースを確保するために、Fedora 24を持つパーティションのサイズを変更するのは安全ですか?
- USBスティックに新しいパーティションを作成し、ライブバージョンではなく新しいOSをインストールするために従う必要がある一般的な手順は何ですか? (必要に応じて、ライブバージョンで2番目のUSBスティックを使用できます。)
- リストに新しいオペレーティングシステムを表示するためにUSBスティックのGRUB2をどのように更新しますか?
回答いただきありがとうございます。
ベストアンサー1
USBフラッシュドライブに複数のLinuxディストリビューションをインストールする方法は?
考える:
- USBドライブからBIOSを起動する
- マスターブートレコードパーティション
- GRUB ブートローダ
ツール:
- super_grub2_disk_hybrid_2.02s9.iso
- pmagic_2013_08_01.iso(最後の無料版には32ビットと64ビットが含まれています)
- ストレージディスク必要な唯一のファイルは、プリコンパイルされたバイナリメモリディスクです。
archive/bios/memdisk
- 仮想マシンを備えた業務用コンピュータ
概要:
- 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パーティションははるかに大きいです。
ステップ3
USBドライブに復元するオペレーティングシステムを準備します。
新しい仮想マシンを作成し、オペレーティングシステムをインストールします。この例では、Ubuntu14サーバーは32ビットです。 VMインストールドライブをUSBのパーティションサイズより小さく設定しました。 4GB。インストール中にLVMの代わりにMBRを使用し、インストール時にスワップパーティションが作成されるようにしました。
新しい仮想マシンを作成し、追加のオペレーティングシステムをインストールします。この例では、Ubuntu16サーバーは64ビットです。 VMインストールドライブをUSBのパーティションサイズより小さく設定しました。 8GB。インストール中にLVMの代わりにMBRを使用し、インストール時にスワップパーティションが作成されるようにしました。
各オペレーティングシステムに必要な変更、更新、インストールを実行します。
新しい仮想マシンのシャットダウン
新しい仮想マシンの複製を開始します。
各新しいVMに接続し、pmagic_2013_08_01.iso
ISOから起動します。
各仮想マシンのパーティションを表示します。インストールされているオペレーティングシステムの場所を記録してください。両方でなければなりません/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-mkconfig
USBドライブを検出し、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.iso
splash.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番号を検索すると、スタートアップアイテムを見つけることができます。サブメニュー項目を含むすべての項目をコピーするか、基本項目のみをコピーします。
起動エントリがなくても、ホスト上のすべてのオペレーティングシステムから起動できますmemdisk
。super_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 メニューに伝播されます。
テストを見て!