BIOS関連やHDD診断ツール、パーティション編集、メモリ診断など、様々なツールが収録されているUltimate Boot CD(以下UBCD)をUSBメモリにインストールしてみた。古いBIOSには対応していないが、使用するPCにCDドライブが無かったり、自分でツールを追加したい時などには便利かも。長いので続きを読むから。
UBCDのUSBへのインストール方法(Linux向け)
警告:fdiskやddなどでUSBメモリに直接操作を加えるため、デバイス指定を間違えたりすると最悪HDDのデータが消失したりLinuxが立ち上がらなくなるので慎重に操作すること!またUSBメモリの中身は消去されるので注意!
1,公式サイトからUBCDの最新版ISOをダウンロードする。
2,ISOファイルの中身をアーカイブユーティリティなどで適当なディレクトリにコピーする。ここでは/path/to/ubcd533にコピーしたものとして進める。
3,USBメモリを挿したあと、dmesgやdfなどで当該USBメモリのデバイス名を探す。
$ dmesg | tail [40721.902505] sd 5:0:0:0: [sdb] Write Protect is off [40721.902512] sd 5:0:0:0: [sdb] Mode Sense: 43 00 00 00 [40721.903239] sd 5:0:0:0: [sdb] No Caching mode page found [40721.903244] sd 5:0:0:0: [sdb] Assuming drive cache: write through [40721.907989] sd 5:0:0:0: [sdb] No Caching mode page found [40721.907995] sd 5:0:0:0: [sdb] Assuming drive cache: write through [40721.909005] sdb: sdb1 [40721.911612] sd 5:0:0:0: [sdb] No Caching mode page found [40721.911616] sd 5:0:0:0: [sdb] Assuming drive cache: write through [40721.911620] sd 5:0:0:0: [sdb] Attached SCSI removable disk $ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/ubuntu--vg-root 916G 60G 810G 7% / (中略) /dev/sda1 236M 64M 160M 29% /boot /dev/sdb1 7.5G 400K 7.5G 1% /media/username/USBMEMORY
4,上記の例では/dev/sdb(デバイス)であることがわかったので、このデバイスのパーティション(/dev/sdb1)のマウントを一旦解除する。
$ sudo umount /dev/sdb1
5,fdiskでパーティションテーブルをいじる。USBメモリのデバイス名を指定してfdiskを起動する。
$ sudo fdisk /dev/sdb コマンド (m でヘルプ): p ディスク /dev/sdb: 8054 MB, 8054112256 バイト ヘッド 1, セクタ 62, シリンダ 253720, 合計 15730688 セクタ Units = セクタ数 of 1 * 512 = 512 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスク識別子: 0x12345678 デバイス ブート 始点 終点 ブロック Id システム /dev/sdb1 * 56 15730687 7865316 c W95 FAT32 (LBA)
pコマンドでこのデバイスがUSBメモリに間違い無ければ、引き続き操作を行う。違うと気づいたらすぐにqで Ctrl+CやCTRL+D(2015/03/15 17:56追記 誤入力の恐れがあるため適切なキーに修正)で終了させれば大丈夫。
6,まず既存のパーティションをdコマンドで削除する。
コマンド (m でヘルプ): d 選択したパーティション 1 コマンド (m でヘルプ): p ディスク /dev/sdb: 8054 MB, 8054112256 バイト ヘッド 1, セクタ 62, シリンダ 253720, 合計 15730688 セクタ Units = セクタ数 of 1 * 512 = 512 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスク識別子: 0x12345678 デバイス ブート 始点 終点 ブロック Id システム
このUSBメモリの場合はパーティションは1つしかないが、複数ある場合はdコマンドを繰り返し行う。pコマンドでパーティションが無い事を確認。
7,nコマンドでパーティションを作る。Enter連打でOK。
コマンド (m でヘルプ): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p パーティション番号 (1-4, 初期値 1): 初期値 1 を使います 最初 セクタ (2048-15730687, 初期値 2048): 初期値 2048 を使います Last セクタ, +セクタ数 or +size{K,M,G} (2048-15730687, 初期値 15730687): 初期値 15730687 を使います
8,tコマンドでパーティションのシステムタイプを変更する。今回は8GBのUSBメモリを使用しているので、16進数コード cのW95 FAT32 (LBA)に変更する。
2GB未満のUSBメモリを使用する場合、16進数コードはeと入力する(W95 FAT16 (LBA))。
コマンド (m でヘルプ): t 選択したパーティション 1 16進数コード (L コマンドでコードリスト表示): c パーティションのシステムタイプを 1 から c (W95 FAT32 (LBA)) に変更しました
9,作成したパーティションをaコマンドでブート可能にする。
コマンド (m でヘルプ): a パーティション番号 (1-4): 1
10,wコマンドでデバイスに変更を反映する。このコマンドを実行するまでは実際に書き込まれないので操作するデバイスなどに間違いないか最終確認すること。
コマンド (m でヘルプ): w パーティションテーブルは変更されました! ioctl() を呼び出してパーティションテーブルを再読込みします。 警告: DOS 6.x パーティションを作成、または変更してしまった場合は、 fdisk マニュアルの追加情報ページを参照してください。 ディスクを同期しています。
11,作成したパーティションをFAT32でフォーマットする。パーティションのシステムタイプにFAT16を指定した場合は-F 32を-F 16に変更する。
$ sudo mkfs.vfat -F 32 /dev/sdb1 mkfs.fat 3.0.26 (2014-03-07)
12,syslinuxのMBRをデバイスに対して転送。その後USBメモリを抜き差しするなどして再マウントさせる。
$ cd /path/to/ubcd533/ubcd/tools/linux/ubcd2usb/ $ sudo dd if=mbr.bin of=/dev/sdb 0+1 レコード入力 0+1 レコード出力 440 バイト (440 B) コピーされました、 0.0131298 秒、 33.5 kB/秒
13,UBCDの中身をコピーする。予めdfコマンドなどでUSBメモリがマウントされているパスを確認しておく(ここでは/media/username/1234-5678にマウントされているものとして進める)。
$ cd /path/to/ubcd533 $ cp -r * /media/username/1234-5678/
14,パーティションに対してsyslinuxをインストールする。syslinuxのパーミッションが〜なエラーが出た場合はsyslinuxに対してchmod a+xする。
$ sudo /path/to/ubcd533/ubcd/tools/linux/ubcd2usb/syslinux -i -s -d /boot/syslinux /dev/sdb1
15,インストール完了。実際に起動する時は予めBIOSでUBCDが入っているUSBメモリ(USB-HDDと出てるかも)の起動優先順位を上位にしておく。
補足:clamav/F-Protの定義ファイルを更新する
UBCDにはclamavとF-Protというウイルススキャンソフトが収録されている。
ここではUBCDに同梱されている定義ファイルを最新版に更新してみる。
※インストール手順の2にあるISOの中身のコピーが完了していることを想定している。
1,更新スクリプトのあるディレクトリにcdし、更新スクリプトに対してchmod a+xする。
$ cd /path/to/ubcd533/ubcd/tools/linux/antivirus $ chmod a+x *.sh
2,clamav.shとfprot.shを起動するだけ。アーカイブユーティリティでISOの中身をコピーした場合は書き込み権限がなくデータ更新段階でエラーになるので予め書き込み権限を付与しておく(chmod -R +w /path/to/ubcd533/*)。また、xzがインストールされていない場合もエラーになるので予めインストールしておく*1。
$ ./clamav.sh (略) $ ./fprot.sh (略)
3,UBCDがすでにUSBメモリにインストールされている場合は再度UBCDの中身をUSBメモリにコピーする。されていない場合はインストール手順の3から始める。