|
サイズ: 6271
コメント: mkbootcd.shの内容説明
|
サイズ: 3347
コメント:
|
| 削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
| 行 2: | 行 2: |
| 行 3: | 行 4: |
| * 9.04, 9.10, 10.04 「USB スタートアップ・ディスクの作成」でUSBメモリにインストールしたUbuntuを起動する「BootCD」の極めて簡単な作成法です。 |
* 9.04, 9.10, 10.04 [[BR]] 「USB スタートアップ・ディスクの作成」 でUSBメモリにインストールしたUbuntuを起動する 「BootCD」 の簡単な作成法です。 |
| 行 8: | 行 8: |
| (ここでは、USBメモリにUbuntuを1つだけインストールした場合に限ります。) | |
| 行 10: | 行 9: |
| ここでは、USBメモリにUbuntuを1つだけインストールした場合に限ります。 | |
| 行 11: | 行 11: |
| === 「BootCD」の作成 === | また、「スタートアップ・ディスク」 という趣旨から、コマンドを使わない方法だけを記載します。 |
| 行 13: | 行 13: |
| 1. [attachment:mkbootcd.tar.gz ここ] をクリックして「mkbootcd.tar.gz を開く」のウィンドウが出たら、「プログラムで開く」にチェックを入れ、「OK」をクリック。次のウィンドウで「mkbootcd.tar.gz」をクリックし、続く2つのウィンドウで「展開」をクリック、最後に「終了」をクリックする。 | === 「BootCD」の作成法 === 1. 「gedit」 を開いて、一番下のスクリプト 「boot.sh」 54行を貼り付け、ファイル名を 「boot.sh」 としてホームディレクトリに保存し、閉じる。 |
| 行 15: | 行 16: |
| 1. ホームディレクトリにファイル「mkbootcd.sh」を確認する。 | 1. ファイル 「boot.sh」 を右クリックし、「プロパティ」 から 「アクセス権」 に入り、「プログラムとして実行できる」 にチェックを入れて閉じる。 |
| 行 17: | 行 18: |
| 1. ファイル「mkbootcd.sh」をダブルクリックし、「端末内で実行する」をクリックする。開かれた「端末」上の指示に従って USBメモリをPCに接続し、「BootCD」のイメージファイル「bootcd.iso」を作成する。 | 1. ファイル 「boot.sh」 をダブルクリックし、「端末内で実行する」 をクリックする。 開かれた 「端末」 上の指示に従って USBメモリをPCに接続し、イメージファイル 「bootcd.iso」 を作成する。 作業時間は20秒程度。 |
| 行 19: | 行 20: |
| 1. ホームディレクトリに出来ているファイル「bootcd.iso」を右クリックして「書き込む」をクリックするなどしてCD-R(-RW)に焼く。「アプリケーション」ー「サウンドとビデオ」などから「Brasero」を使って書き込んでも良いでしょう。 === ダウンロードされるものの内容 === ダウンロードされるファイルmkbootcd.tar.gzを展開して作成されるmkbootcd.shの内容は以下のとおりです。 |
1. ホームディレクトリに出来ているファイル 「bootcd.iso」 を CD-R (-RW) に焼く。 === スクリプト「boot.sh」 === . スクリプト「boot.sh」 |
| 行 27: | 行 26: |
| 行 29: | 行 27: |
| 行 33: | 行 30: |
if [ `whoami` != "root" ]; then # 実行したものがroot権限でなければ、 sudo $0 $@ # このスクリプトをsudo付きでroot権限で実行し直します。 exit # このroot権限で実行されていないスクリプト自体は終了します。 |
if [ `whoami` != "root" ]; then sudo $0 $@ exit |
| 行 38: | 行 34: |
cd `dirname $0` # このスクリプトの存在するディレクトリに移動します。 |
cd `dirname $0` echo "\n\tUSBメモリをPCに接続して下さい。!\n" echo "\tUSBメモリがマウントされるまで待ち、新たにファイル・" echo "\tブラウザが開いたら全て閉じ、「Enter」を押します。\n" read -p " Enter " end echo "\t----------------------------------------------------\n" echo "\tUSBメモリ上のフォルダやファイルをコピーします。\n" DEV=`sfdisk -s | grep '/dev/' | tail -n 1 | cut -f1 -d":"` UBT=`fdisk -l ${DEV} | grep '^/dev/' | grep '*' | cut -f1 -d" "` if [ ! -d /mnt ]; then mkdir /mnt fi BURIES=$(mount|grep '/mnt');if [ "$BURIES" ];then umount /mnt ;fi umount ${UBT} ; mount ${UBT} /mnt mkdir -p uiso/casper INIT=`ls /mnt/casper | grep initrd` cp /mnt/casper/vmlinuz /mnt/casper/${INIT} uiso/casper/ cp -rf /mnt/syslinux uiso/isolinux cp -rf /mnt/.disk uiso/ mv uiso/isolinux/syslinux.cfg uiso/isolinux/isolinux.cfg sed -i 's/300/50/' uiso/isolinux/isolinux.cfg rm uiso/isolinux/boot.cat echo "\n\tファイル「bootcd.iso」を作成します。\n" genisoimage -R -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -o bootcd.iso uiso umount /mnt rm -rf uiso text echo "\n\n\t作業は完全に終了しました。\n" echo "\tこの端末を閉じて下さい。\n" sleep 20 exit 0}}} |
| 行 42: | 行 66: |
| echo "\n\tUSBメモリをPCに接続して下さい。!\n" # これらを端末に表示します。 echo "\tUSBメモリがマウントされるまで待ち、新たにファイル・" echo "\tブラウザが開いたら全て閉じ、「Enter」を押します。\n" read -p " " end # Enterキーが押されるのを待ちます。 echo "\t----------------------------------------------------\n" echo "\tUSBメモリ上の必要なフォルダやファイルをコピーします。\n" DEV=`sfdisk -s | grep '/dev/' | tail -n 1 | cut -f1 -d":"` # sfdiskの出力のうち、/dev/を含むものの最後の行から、:を区切りとして最初のものを取り出して、それをDEVに代入。 UBT=`fdisk -l ${DEV} | grep '^/dev/' | grep '*' | cut -f1 -d" "` # fdisk -l DEVの出力から先頭に/dev/がある行を取り出し、さらに*(ブートフラグ)のある行を取り出し、最初の半角スペースまでの値をUBTに代入。(つまり、インストールされたパーティションのデバイスファイル名) if [ ! -d /mnt ]; then # ディレクトリとして/mntが無ければ mkdir /mnt # /mntを作成。 fi rm -rf /mnt/* # /mntの中のファイルやディレクトリをすべて強制的に削除。もしも、/mntにどこかのパーティションがマウントされていた場合、その中身がすべて削除されてしまいます。 umount ${UBT} ; mount ${UBT} /mnt # Ubuntuをインストールしたパーティションをアンマウントして、/mntにマウントし直します。 mkdir -p uiso/casper # カレントディレクトリにuiso/casperというディレクトリを作成。 INIT=`ls /mnt/casper | grep initrd` # インストールされたパーティションの/casperディレクトリにあるファイルの中でinitrdを含むものの名前をINITに代入。 cp /mnt/casper/vmlinuz /mnt/casper/${INIT} uiso/casper/ # インストールされたパーティションの/casper/vmlinuzと/casper/(INIT変数)をusio/casperにコピー。 cp -rf /mnt/syslinux uiso/isolinux # インストールされたパーティションの/syslinuxディレクトリをuisoの中にisolinuxという名前でコピー。 cp -rf /mnt/.disk uiso/ # インストールされたパーティションの/.diskをuisoディレクトリの中にコピー。 mv uiso/isolinux/syslinux.cfg uiso/isolinux/isolinux.cfg # uiso/isolinux/syslinux.cfgの名前をisolinux.cfgに改名。 sed -i 's/300/50/' uiso/isolinux/isolinux.cfg # uiso/isolinux/isolinux.cfgの内容の300を50に変更。 rm uiso/isolinux/boot.cat # uiso/isolinux/boot.catを削除。 echo "\n\tファイル「bootcd.iso」を作成します。\n" genisoimage -R -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -o bootcd.iso uiso # genisoimageコマンドでISOファイルをuisoディレクトリの内容から作成。参考$ man genisoimage umount /mnt # インストールしたパーティションをアンマウント。 rm -rf uiso text # uisoディレクトリとtextを削除。 echo "\n\n\t作業は完全に終了しました。\n" echo "\tこの端末を閉じて下さい。\n" sleep 20 exit 0 }}} ======以下の部分は、ご覧下さったら、削除していただいても構いません[[BR]] MozTraさんへ 以前、小生が同様にスクリプトをダウンロードさせて使ってもらおうとしたときに、「”理解できないけどとにかくツール”という状況は、セキュリティ上の問題を発生する可能性があるので、まずは方法の説明をすることが先決だ」と指摘されたことがあります。そこで、スクリプトの内容も、このページに追加させていただきました。 kiyoshi 2010/4/11 1:20 |
=== 「boot.sh」Change Log === {{{2010/04/22 02:42 32c32 < rm -rf /mnt/* --- > BURIES=$(mount|grep '/mnt');if [ "$BURIES" ];then umount /mnt ;fi}}} |
対象とするUbuntuのバージョン
- 9.04, 9.10, 10.04
BR 「USB スタートアップ・ディスクの作成」 でUSBメモリにインストールしたUbuntuを起動する 「BootCD」 の簡単な作成法です。
USBデバイスからの起動に対応していないPCでは特に有効です。名刺大のCD-Rに焼いてUSBメモリと共に携帯し、多くのPCでUbuntuを起動できます。
ここでは、USBメモリにUbuntuを1つだけインストールした場合に限ります。
また、「スタートアップ・ディスク」 という趣旨から、コマンドを使わない方法だけを記載します。
「BootCD」の作成法
- 「gedit」 を開いて、一番下のスクリプト 「boot.sh」 54行を貼り付け、ファイル名を 「boot.sh」 としてホームディレクトリに保存し、閉じる。
- ファイル 「boot.sh」 を右クリックし、「プロパティ」 から 「アクセス権」 に入り、「プログラムとして実行できる」 にチェックを入れて閉じる。
- ファイル 「boot.sh」 をダブルクリックし、「端末内で実行する」 をクリックする。 開かれた 「端末」 上の指示に従って USBメモリをPCに接続し、イメージファイル 「bootcd.iso」 を作成する。 作業時間は20秒程度。
- ホームディレクトリに出来ているファイル 「bootcd.iso」 を CD-R (-RW) に焼く。
スクリプト「boot.sh」
- スクリプト「boot.sh」
#
[ -n "$DEBUG" ] && set -x
#
# Main Routine
#
if [ `whoami` != "root" ]; then
sudo $0 $@
exit
fi
cd `dirname $0`
echo "\n\tUSBメモリをPCに接続して下さい。!\n"
echo "\tUSBメモリがマウントされるまで待ち、新たにファイル・"
echo "\tブラウザが開いたら全て閉じ、「Enter」を押します。\n"
read -p " Enter " end
echo "\t----------------------------------------------------\n"
echo "\tUSBメモリ上のフォルダやファイルをコピーします。\n"
DEV=`sfdisk -s | grep '/dev/' | tail -n 1 | cut -f1 -d":"`
UBT=`fdisk -l ${DEV} | grep '^/dev/' | grep '*' | cut -f1 -d" "`
if [ ! -d /mnt ]; then
mkdir /mnt
fi
BURIES=$(mount|grep '/mnt');if [ "$BURIES" ];then umount /mnt ;fi
umount ${UBT} ; mount ${UBT} /mnt
mkdir -p uiso/casper
INIT=`ls /mnt/casper | grep initrd`
cp /mnt/casper/vmlinuz /mnt/casper/${INIT} uiso/casper/
cp -rf /mnt/syslinux uiso/isolinux
cp -rf /mnt/.disk uiso/
mv uiso/isolinux/syslinux.cfg uiso/isolinux/isolinux.cfg
sed -i 's/300/50/' uiso/isolinux/isolinux.cfg
rm uiso/isolinux/boot.cat
echo "\n\tファイル「bootcd.iso」を作成します。\n"
genisoimage -R -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -o bootcd.iso uiso
umount /mnt
rm -rf uiso text
echo "\n\n\t作業は完全に終了しました。\n"
echo "\tこの端末を閉じて下さい。\n"
sleep 20
exit 0
「boot.sh」Change Log
{{{2010/04/22 02:42 32c32 < rm -rf /mnt/* --- > BURIES=$(mount|grep '/mnt');if [ "$BURIES" ];then umount /mnt ;fi}}}