## page was renamed from UbuntuTips/Install/CreateBootUsbFlash ## page was renamed from CreateBootUsbFlash ## page was renamed from UbuntuTips/Install/汎用の「ブートUSBフラッシュ」を作るには #title USBメモリを使ってハードディスク上のOSを起動するには * '''対象とするUbuntuのバージョン''' * すべて == 方法の概観 == OSのupgradeやmulti-bootの設定などでHDDのMBRが壊れてOSが起動不能となることがありますが、そのための「ブートUSBメモリ」を作成します。 各PCにインストールされているgrubのmenu.lstを編集した上で、次々と連結することによって、多くのPCで使える汎用の「ブートUSBメモリ」を作成します。 ブートローダgrubを使うので、数台のPCを対象とするなら、必要な容量は 500Kb 以下で済みます。 しかも、USBメモリの最後部を使うだけなので、大部分の領域はデータ保存など他の用途に使うことができます。 1台のPCで使う場合は、極めて簡単に作成できます。なお、内蔵HDDが3台以上の場合を割愛します。 Ubuntuを含みmulti-boot環境が構築されている場合を例示しますが、grubがインストールされているOSならどれでも行うことができます。 == USBメモリのパーティション分割 == 1. USBメモリをPCに接続し、fdisk コマンド ( または GParted ) で、USBメモリ上に2つのパーティションを作成する。 ||番号||接続デバイス||名称||サイズ||ファイルシステム|| ||1||/dev/sd*1||storageパーティション||残り全部||fat16|| ||2||/dev/sd*2||grubパーティション||2Mb||ext2|| 1. 各パーティションに名前を付け、フォーマットする。 {{{ $ sudo /sbin/mkdosfs -F 16 -n storage /dev/sd*1 $ sudo /sbin/mke2fs -L grub /dev/sd*2}}} == menu.lstの編集 == Ubuntuのmenu.lstが、このPCに入っている全てのOSを起動できる内容のものとします。 以下の編集は主として「grubがUSBメモリを /dev/sda、即ち (hd0) と見なす」ための対応です。 1台のPCで使用する場合、下の 2. 3. を省くことができます。 1. 次のコマンドを実行する。 {{{ $ sed -e 's/(hd1/(hd2/g' /boot/grub/menu.lst | sed -e 's/(hd0/(hd1/g' > menu.lst}}} 1. ホームディレクトリにできたmenu.lstを開き、ファイルの上の方にある「 default 0 」を「 default 1 」と書き換える。 {{{ $ gedit menu.lst}}} 1. 続いて、最初の「title .......... ( OS 名 ) .......... 」の行を見つけ、__その直ぐ上に__次の2行を付け加え,「PC 名」の代 わりに簡単で具体的な名前を英語で書き込む。例えば、「My-Sony」・「Dad's-Dell」・「Wife's-NEC」などでよい。勿論、機種名でも構わない。 {{{ title .......... PC 名 .......... root}}} '''< PCにWindowsが入っている場合の追加編集 >''' 1. menu.lstには「title .......... Windows .......... 」の行があるので、その全てに対して、__その行の直ぐ下に__次の2行または3行を付け加えて、ファイルを保存する。 {{{ (1). 内蔵HDDが1台ならば (2). 内蔵HDDが2台ならば  map (hd0) (hd1) map (hd0) (hd1)           map (hd1) (hd0) map (hd1) (hd2)           map (hd2) (hd0)}}} == grubのインストール == 1. USBメモリがアンマウントされていれば、一旦PCから取り外し、再接続すると、「grubパーティション」のmount-pointは/media/grubとなる。 1. ホームディレクトリにスクリプトファイル boot-uf.sh を作成し、以下の9行を書き込んで保存する。 {{{ $ gedit boot-uf.sh}}} {{{ sudo mkdir -p /media/grub/boot/grub sudo chmod -R 777 /media/grub/boot/grub cp -f /boot/grub/* /media/grub/boot/grub rm -f /media/grub/boot/grub/menu.lst cp -f menu.lst /media/grub/boot/grub sudo chmod 666 /media/grub/boot/grub/menu.lst sudo sync sudo /usr/sbin/grub-install --root-directory=/media/grub /dev/$1 sudo sync}}} 1. スクリプトファイル boot-uf.sh を実行する。 この時、USBメモリの接続デバイス sd* を、引数として半角空白の後に付け加える。 {{{ $ sh ./boot-uf.sh sd*}}} 1. PCをUSBメモリから再起動すると、grubの選択画面が現れる。 == 複数のPCで使う、menu.lstの連結 == 「ブートUSBメモリ」を使いたいPCでは、その中の全てのOSを起動できる内容のmenu.lstが必要です。そのmenu.lstが含まれるOSは問いません。 1. 連結したいmenu.lstが入っているOSを起動して、上の「menu.lstの編集」に従ってmenu.lstを編集する。続けて、「 title .......... PC 名 ..........」の行を見つけ、__それより上の部分__を全て削除し、なおファイルは開いておく。 1. 「ブートUSBメモリ」をPCに接続し、ファイル/grub/boot/grub/menu.lstを開く。ファイルの最後尾に、 1.で編集し開いてあるファイルmenu.lstの内容を、1行空けて貼り付け、ファイルを保存する。 1. これらの作業はGUIで行い、最後に次のコマンドを必ず実行しておく。 {{{ $ sudo sync}}} 1. 同様に次々と、起動したいPCでmenu.lstを連結していけば、汎用「ブートUSBメモリ」ができ上がる。