web-dev-qa-db-ja.com

USBスティックに複数のLinuxディストリビューションをインストールするにはどうすればよいですか?

複数のLinuxシステム(Liveバージョンではない)が含まれるようにパーティション化されたUSBスティックを設計したいと思います。特に、同じUSBスティックに少なくとも2つの異なるバージョンのFedora、64ビットArch用のFedora24と32ビットArch用のFedora8が必要です。私の目的は、ラップトップのスペースを消費せずに(別のパーティションまたは仮想マシンを介して)仕事で作業する必要のあるマシンの環境を複製し、USBスティックをラップトップに差し込むだけでOSを起動できるようにすることです。

これまでのところ、動作中のFedora24を32Go USB Stickにインストールし、GRUB2を使用して、Fedora24を起動するかラップトップのOSの1つを起動するかを選択できました。どちらもそれぞれ10,01Gioと500Mioの2つのパーティションを使用しており、他のLinuxディストリビューションに使用する予定の未割り当て領域は20Go未満です。 USBスティックの現在の状態をよりよくプレビューできるように、GPartedでUSBスティックを読んだときに表示される内容は次のとおりです。

GParted display

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

  • Fedora 24が配置されているパーティションのサイズを最終的に変更して、より多くのOS用のスペースを確保するのは安全ですか(将来)?
  • USBスティックに新しいパーティションを作成し、Liveバージョンではない新しいOSをインストールするには、どのような一般的な手順に従う必要がありますか(必要に応じて、Liveと同等の2番目のUSBスティックを使用できることに注意してください)。
  • USBスティックにあるGRUB2を更新して、リストに新しいOSを追加するにはどうすればよいですか?

よろしくお願いします。

1
Jef Grailet

jc__のチュートリアルに関するいくつかのアドバイスとコメント

まず第一に、私の最初の投稿で述べた目標を達成する方法についてのチュートリアルを投稿してくれたjc __(再び)に感謝します。インストールされたOSを起動するときに追加のトラブルシューティングを行う必要があるかもしれませんが、メソッドが機能することを確認できます。そのため、チュートリアルを実行する際に考慮したいいくつかのことを列挙するためにこの返信を行います。

0。古いディストリビューションを選択する場合は、慎重に確認してくださいcanそれらをすべて起動します

私は、Fedora 8が古すぎて、現在のラップトップなどの最近のハードウェアで起動できないという難しい方法を学びました(念のため、Fedora 8は2007年頃にリリースされ、私のラップトップは2010年代に製造されました)。正確な詳細は思い出せませんが(同僚の1人のおかげでこれを学んだので)、カーネルがハードウェアの処理に問題があり、すべてを適切にマウントできないようです。そのため、最終的にFedora 8 forFedoraを削除しました。 14(これは正常に動作します)。

しかしhowディストリビューションがあなたのマシンで正しく起動するかどうかを確認できますか?簡単なアプローチは、ターゲットディストリビューションのライブバージョンを使用してUSBから起動することです。すべてがLiveバージョンで正常に起動する場合は、VMを介してディストリビューションをインストールし、そのパーティションをUSBスティックに複製して、USBから起動することに問題はありません。

私の場合、 YUMI --Multiboot USB Creator を使用して、ラップトップで古いFedoraリリースの複数のLiveバージョンをテストしました。もちろん、このアドバイスは、私のように古いディストリビューションを使用する必要がある場合にのみ適用されます。

1。データパーティションにFAT32またはext3/ext4を使用することを検討してください

ある時点で、私のUbuntu 16.04は、NTFSでフォーマットされたときにデータパーティションを処理するのに問題がありました。最終的に、私はそれをFAT32として再フォーマットしました。これは、Linuxディストリビューションで問題がない古いフォーマットです。私自身はテストしていませんが、Linuxだけを使用している場合(私が知る限り、Windowsはこれらのファイルシステムを処理できません)、ext3/ext4も問題ありません。

USB上のOSとホストコンピューター上のOS間でデータを簡単に共有する方法として、データパーティションを使用しています。

2。パーティションのクローン作成にセカンダリUSBスティックの使用を検討してください

2番目のUSBスティックを使用すると、clonezillaによって生成された画像を保存できるため、最初のステップで非常に実用的です。 clonezilla/home/partimag/フォルダーを配置する場所を尋ねてきたら、2番目のUSBスティックをマシンに接続せずに、メニューの最初のオプション(ssh_serverのすぐ上)を選択してから接続し、約5秒待ってからEnterキーを押し、clonezilla/home/partimag/フォルダーのオプションを列挙したら、2番目のUSBスティックを選択します。以降の操作は、jc__で列挙された操作と同じになります。

このアプローチは、もちろん結果を変えることはなく、USBスティックのパーティション分割とターゲットOSが配置されているパーティションのクローン作成/復元にホストコンピューターをまったく関与させないというメリットがあります。ディスクのパーティション分割をいじるのがよくわからない場合は、これを試すことができます。

3。カーネルのロード後にUSBOSの起動に失敗した場合は、initrd/initramfs imageを再構築してください

ターゲットOSによっては、Fedora 24の起動中に、dracutのキューでタイムアウトが発生するなど、このトピックのコメントで示したものと同様の問題が発生する可能性があります。

私の場合、Fedora 8の特定のケース(項目0を参照)を除いて、initrdイメージを再構築することで問題を修正しました。ディストリビューションとその最新性によっては、このイメージの前にinitramfsではなくinitrdを付けることもできます。名前に関係なく、ファイルの目的は同じです。実際のファイルシステムをマウントする前に、起動時に一時的なファイルシステムを使用します。このファイルが破損している、エラーがある、または欠落している場合、システムを正しく起動できません。

うまくいけば、Linuxディストリビューションには、このイメージを再構築するためのユーティリティが付属しています。私の(短い)経験から:

  • 古いディストリビューション:mkinitrd
  • 最近のUbuntuディストリビューション:mkinitramfs
  • 最近のFedoraディストリビューション:dracut

注:イメージを(再)ビルドするとき、各ユーティリティは/etc/fstabファイルを考慮に入れます。これを利用して、すでにlink USBOSとのスワップパーティションを作成してください。 /etc/fstabでは、UUIDを使用してパーティションを示すことができるため、fdiskblkidを使用して目的のスワップパーティションのUUIDを取得し、それに応じて/etc/fstabを更新します。

リストした3つのコマンドのいずれかを使用してイメージを再構築するには、最初にchroot/initrdイメージを再構築するOSにinitramfsする必要があります。私は基本的にこれと同じアプローチに従います チュートリアル これは、バグのあるOS(つまり、USB OSの1つ)のパーティションをホストコンピューターにマウントし、いくつかのバインディングコマンドを使用して適切にchrootその中。必要に応じて、/mntフォルダーにサブフォルダーを作成できます。私の場合、Fedora 14にchrootするために、次のコマンドを使用しました。

Sudo mkdir /mnt/usb_f14
Sudo mount /dev/sdb3 /mnt/usb_f14
Sudo mount --bind /proc /mnt/usb_f14/proc
Sudo mount --bind /dev /mnt/usb_f14/dev
Sudo mount --bind /sys /mnt/usb_f14/sys
Sudo chroot /mnt/usb_f14

パーティションがfdisk/dev/sdXが何であるかを事前に確認することを忘れないでください。 USB OSに根付いたら、/bootフォルダーに移動します。必要に応じて、新しいイメージを作成する前に、既存のイメージ(存在する場合)の名前を変更して保持します(たとえば、接頭辞old-を付けることができます)。次に、実行します

ls /lib/modules/

これにより、USB OSにあるさまざまなカーネルが一覧表示されます(ほとんどの場合、カーネルは1つだけである必要があります)。実際、上記のコマンドのいずれでも、イメージのビルドに使用するカーネルを指定する必要があります。次に、アクセスできるユーティリティに応じて、次の3つのコマンドのいずれかを実行する必要があります(my-kernelで、ls /lib/modules/でリストされたカーネルの1つを示します。必要に応じて、イメージに他の名前を使用できることに注意してください)

  • mkinitrd initrd-my-kernel.img my-kernel
  • mkinitramfs -o initramfs-my-kernel.img my-kernel
  • dracut initramfs-my-kernel.img my-kernel

OSによっては、不足しているモジュールに関するメッセージが表示される場合があります。イメージが生成されている限り、無視してかまいません(Fedora 14のイメージを再構築しているときに取得しましたが、それでも正常に起動します)。

また、古い画像を直接置き換える場合は、コマンドにフラグを追加して強制的に上書きする必要がある場合があることにも注意してください。たとえば、dracutの場合、--forceを追加する必要があります。その他のコマンドについては、マニュアルを参照してください。完了したら、USB OSパーティションをアンマウントし、最初にUSBから起動するように設定された起動シーケンスでマシンを再起動します。これで、USBOSが正常に起動するはずです。

最後に、最初のイメージの名前と異なる場合は、新しいイメージに付けた名前を忘れないでください。新しいイメージを考慮に入れるには、grub.cfgファイルを更新する必要があります。

4。仮想マシンのパーティションを再確認してください

ターゲットOSの1つを仮想マシンにインストールするときにパーティションを自分で選択できなかった場合(Fedora 14で発生しました)、2つのext4パーティションが作成され、小さなパーティションには/bootフォルダーとが含まれる可能性があります。もう1つは、ファイルシステムの残りの部分を含みます。これが発生した場合は、jc__で説明されている方法で大きなパーティションのクローンを作成し、仮想マシンを再度起動して、/bootフォルダーをどこかにコピーし(セカンダリUSBスティックなど)、復元後にクローンしたパーティションに配置します。 initrdイメージを再構築する前に、後で/etc/fstabファイルを更新することを忘れないでください(3を参照)。元のファイルには、1つではなく2つのext4パーティションがリストされる可能性があります。

5。 USB GRUBを終了する、簡単な方法

Jc__はsuper_grub2_disk_hybrid_2.02s9.isomemdiskを使用してホストマシンのすべてのオプションを取得することを推奨していますが、この単純なメニューエントリをgrub.cfgに追加することもできます。

menuentry 'Continue to Host machine' {
    exit
}

これにより、USBスティックのGRUBが終了し、ホストマシンの起動シーケンスが再開されます。私の場合、ホストコンピューターはデュアルブートのラップトップであるため、このメニュー項目を選択した直後に、マシンのGRUBメニューが表示されます。

私が言いたかったコメントは以上です。 Linuxのトラブルシューティングの経験があまりないので、この投稿にコメントして、エラーや不正確なステートメントを指摘することを躊躇しないでください。

1
Jef Grailet