スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MBR(マスターブートレコード)のバックアップ

MBR(マスターブートレコード)のバックアップ方法を簡単にメモっておきます。

USBメモリ外付けHDDUbuntuをインストールするのは便利ですが、インストール時のMBR破壊はやはり怖いです。

本来は常日頃から(?)バックアップを取っておくべきなのかもしれませんが、おそらくほとんどの方は(少なくとも自分は)ブータブルメモリの作成でもしないとMBRのバックアップなんてしないのでこちらのカテゴリでご紹介。


バックアップはddコマンドで行います。

筆者のPCではバックアップしたいHDD/dev/sdaだったので以下そのように記述します。

MBRのバックアップの場合sudoをつけないとエラーが出て実行できません。


$ sudo dd if=/dev/sda bs=512 count=1 of=mbr.backup



これでmbr.backupという名前でバックアップファイルが作成されます。

ddコマンドのオプションは以下のとおりです。


if :入力ファイル(バックアップしたいディスク)
of :出力ファイル(任意に変更可)
bs :ブロックサイズ
count:ブロック数



bs=512というのは、/dev/sdaの先頭の512bytesを意味します。

これはパーティションテーブルを含めたMBR全てをバックアップする、ということです。

パーティションテーブルを含めない場合、bs=466とします。



作成したバックアップファイルからMBRを復元したい場合は再びddコマンドで書き込んでやります。


sudo dd if=mbr.backup bs=512 count=1 of=/dev/sda



要するに入力ファイル出力ファイルが逆になるだけです。




MBRのバックアップを考える場合、最悪OSが起動しなくなった場合まで想定し、作成したバックアップファイルは外部ストレージに保存しておくようにしましょう。

USBメモリなどですね。

せっかくバックアップしても読み込めないHDDの中に保存してあってはまったく無意味ですので。
スポンサーサイト

テーマ : UNIX/Linux
ジャンル : コンピュータ

USB上のUbuntuでophcrackを使う

ophcrackとは、Windowsのパスワードを解析するソフトです。

有名なソフトなので多くの方がご存知かと思います。


元はチェコ製のLinuxをベースに1CDで起動するように作られているものです。

最近ではUSBメモリに入れて使う方法もいろんなページで紹介されています。



それをあえてUbuntu上でソフトウェアとして動かしてみます。

LiveCDで解析する場合も、軽量版のLinuxを立ち上げてophcrackを起動してるだけなので、普通にLinuxを起動してから使ってみようという訳です。



まずUSB起動Ubuntuにインストールします。

$ sudo apt-get install ophcrack



簡単にできます。

次にテーブルファイルをダウンロードします。

http://ophcrack.sourceforge.net/tables.php

ここから好きなのを取ってきます。

今回は tables_xp_free_fast.zip をダウンロードしました。

Vistaにも対応しているようです。

ダウンロードしたファイルは適当な場所に解凍しておきます。

解凍は普通に

$ unzip tables_xp_free_fast.zip



でOKです。

ただ、ディレクトリができるのではなく直接バラバラと解凍されるので、とりあえずテーブル用のディレクトリでも作って、そこに解凍しましょう。

これでophcrackの準備はOKです。


次にクラックしたいWindowsのパーティションをマウントします。

$ sudo mount /dev/sda1 /media/disk



/dev/sda1 はマウントしたいパーティション、/media/disk はマウントポイントです。

適宜変更してください。



そして、起動します。

WindowsXPの場合は、

$ ophcrack -g -w disk/WINDOWS/system32/config -t /home/k/tables_xp_free_fast




追記:WindowsVistaの場合は、Vista用のテーブルをDL、解凍したのち、

$ ophcrack -g -w disk/Windows/System32/config/RegBack -t /home/k/tables_Vista_free




オプションはそれぞれ、

-g : GUIを使用しない(gnome-terminal内で実行)
-w : アカウント情報の保存場所指定
-t : テーブルファイルがあるディレクトリ指定



です。

オプションを指定せずに

$ ophcrack



としてやればGUIで起動するので、GUIで各種設定をすることも可能。


ちなみに端末内で実行したい場合、-g オプションをつけるのもいいですが、初めから"ophcrack-cli"というCUI用のパッケージも用意されてるので、そっちを使うのも手です。

まぁ詳しくは --help でも見てください。



起動後、しばらく待つと、アカウント名と、解読が成功すれば解読できたパスワードが表示されます。




ちなみに僕のPCWindowsパスワードはしっかり解読されてしまいました。

嬉しいような嬉しくないような。

テーマ : UNIX/Linux
ジャンル : コンピュータ

USBブートCD自動作成スクリプト

前回USBメモリにUbuntu9.04をインストールする方法を紹介しました。

PCによってはBIOSの設定でUSBデバイスを指定出来る機種もありますが、うまく認識してくれなかったり、PC自体が古くてUSBブートが出来ない場合があります。

しかし、CD起動が出来ないPCはまずありませんので、USBブートが出来ない場合は起動CDからGRUBを起動し、USBデバイスを指定して起動します。



【1】HDDにインストールしたUbuntu上で実行する場合

筆者の場合、既にUbuntu9.04をインストールしたPCがあります。

そういう方は少なからずいらっしゃる事と思います。

HDD上のUbuntuで作業をする場合はこちらを参考にしてください。


(1) HDDでUbuntuを起動

Ubuntu9.04でしかテストしていません。


(2) USBメモリを接続し、デバイス名を確認します

まずUSBメモリを挿す前に、

cat /proc/partitions


を実行し、USBメモリ接続前の状態を確認します。

そしてUbuntuをインストールしたUSBメモリを挿し、正常にマウントされたら再度

cat /proc/partitions


を実行します。

先ほどの結果に、何行か追加されて表示されるはずです。

新たに追加された情報が、今挿したUSBメモリの情報です。

その中からUbuntuをインストールしたパーティションのデバイス名を見つけてください。

PC内臓HDDが1台で、当サイトでご紹介した方法でインストールした場合は、多分「/dev/sdb2」です。

2つ目のデバイス2つ目のパーティションという意味です。


分からなかったら、

df


blkid


などを実行してみてください。


(3) シェルスクリプトを用意

以下をbootcd.shという名前で保存します。

#!/bin/bash
if [ $# -ne 1 ]; then
echo "インストールデバイスを指定してください"
echo "(例:/dev/sdb2)"
exit 1
fi

device=$1
mountpoint="/$(df | grep $device | cut -f 4-5 -d '/')"
uuid=$(blkid | grep $device | cut -f 2 -d ' ' | cut -f 2 -d '"')
kernelver=$(ls $mountpoint/boot/ | grep vmlinuz | cut -f 2-4 -d '-')
mkdir -p usbcd/boot/grub
cp $mountpoint/boot/vmlinuz-$kernelver usbcd/boot
cp $mountpoint/boot/initrd.img-$kernelver usbcd/boot
cp $mountpoint/usr/lib/grub/i386-pc/stage2_eltorito usbcd/boot/grub

cat > usbcd/boot/grub/menu.lst << EOF
default 0
timeout 5
#hiddenmenu
title USB-memory ubuntu vmlinuz-$kernelver
kernel /boot/vmlinuz-$kernelver root=UUID=$uuid ro
initrd /boot/initrd.img-$kernelver
EOF

genisoimage -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o usbbootcd-$kernelver.iso usbcd

#rm -rf usbcd


これに実行権限を与えます。

chmod u+x bootcd.sh


20行目28行目はコメントアウト(行頭に#)してありますが、#を削除すると有効になります。

それぞれ

hiddenmenu → OS選択画面が表示されず、一定時間後に自動で起動する

rm -rf usbcd → ISOファイル作成用に一時的に作成したディレクトリを削除

が有効になります。

title」の後の文字列は自由に書き換え可能です。


(4) 実行

作成したスクリプトを実行する際、引数として(2)で調べたデバイス名を与えて下さい。

デバイス名が「/dev/sdb2」の場合

./bootcd.sh /dev/sdb2


と入力して実行します。


正常に実行されれば、「usbbootcd-カーネルバージョン.iso」というCDイメージができるので、CDに焼けば起動CDの完成です。




【2】USBブートしたUbuntuで実行する場合

(1) 起動

USBブート可能なマシンを探してUSBメモリから起動します。


(2) スクリプトの用意

以下をbootcd.shという名前で保存します。

#!/bin/sh
mkdir -p usbcd/boot/grub
kernelver=$(uname -r)
cp /boot/vmlinuz-$kernelver usbcd/boot
cp /boot/initrd.img-$kernelver usbcd/boot
cp /usr/lib/grub/i386-pc/stage2_eltorito usbcd/boot/grub
device=$(df | head -n 2 | tail -n 1 | cut -f1 -d ' ')
uuid=$(blkid $device | cut -f 2 -d '"')

cat > usbcd/boot/grub/menu.lst << EOF
default 0
timeout 5
#hiddenmenu
title USB-memory ubuntu vmlinuz-$kernelver
kernel /boot/vmlinuz-$kernelver root=UUID= ro
initrd /boot/initrd.img-$kernelver
EOF

genisoimage -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o usbbootcd-$kernelver.iso usbcd

#rm -rf usbcd


実行可能にします。

chmod u+x bootcd.sh



(3) 実行

USBメモリから起動して行う場合は引数は必要ありません。

./bootcd.sh


あとはHDDから起動した場合と同じです。

テーマ : UNIX/Linux
ジャンル : コンピュータ

Ubuntu9.04をUSBメモリにインストール

USBメモリUbuntu9.04をインストールします。

ドラマブラッディマンディで主人公高木藤丸USBブートLinux(Debian)を使用したことで、USBブートが俄にブーム(?)になりました。


実際のところ、USBメモリOSをインストールする事自体は、便利と言えば便利です。

例えば筆者の身近な例を挙げると、

・メーラやブラウザ等普段使っている環境を持ち歩ける

・大学の授業でLinuxがいるけどWindowsノートPCのHDDにLinuxを入れたくない

・Linuxで計算したいデータが色々あるけどLinuxマシンが足りない

・起動しなくなったPCのHDDをマウントしてデータ救出

・管理者が行方不明のWindowsパソコンのパスワードを解析


などなど。。。

あ、最後のやつはそれなりの事情があるんでなければ本当はやってはダメです。


そこでUSBメモリUbuntu9.04をインストールする方法を紹介します。

(2010年5月21日現在の最新バージョンは10.04ですが、おそらくほぼ同じ手順でインストール可能のはずです)


なお、今回は、

(a) Windowsと共用可能なストレージを確保

(b) Ubuntu9.04をインストール

(c) 専用起動CDの作成

をしていきます。

(c)については別のエントリでご紹介します。




【1】LiveCDの作成

http://www.ubuntulinux.jp/products/JA-Localized/downloadから、必要なファイルをダウンロードします。

上記リンクからだと日本語Remixのダウンロードページに行きます。

CDイメージ(ISO)をダウンロードしたら、CD-Rに焼きます。

CD-R一枚で済んでしまうのはなかなかすごいですね。



【2】LiveCD起動・USBメモリ接続

Live CDが出来たらLive CDからPCを起動します。

変更を加えないでUbuntuを使ってみる」で起動します。

(直接インストーラを起動することも出来ますがインストール中にエラーが起こった場合等に困るのでこちらの方がいいです)

インストールしたいUSBメモリを挿します。

マウントされるとデスクトップにアイコンが現れるので、右クリック→アンマウント

インストーラを起動します。



【3】USBメモリのフォーマット

インストーラを起動すると、入力項目が色々出てきますので適宜入力し、先に進みます。

!!!ここから重要!!!

パーティションエディタが起動し、PC本体のHDDが表示されます。

インストール先はUSBメモリですので、選択項目から「手動でパーティションを設定する」を選択します。

高度な技術が必要ですとコワイ感じで表示されていますがそれほど高度ではありません。

ただ、失敗するとPC本体のOSが起動出来なくなったりしますので注意は必要です。


手動でパーティションを設定する」を選んで先に進むとデバイスが一覧になっています。

その中から新たに接続したデバイスを選択します。

通常、HDDが一枚しか入っていないマシンなら内臓HDDがsda、二つめ以降のデバイスがsdb, sdcというようになっています。

今回はsdbだったのでsdbということで進めます。

デバイスの記憶容量等で判断がつくかと思います。

もし既にパーティションがある場合(大抵はありますが)、すべて消してしまいましょう。


ではストレージ領域を確保します。

Windowsでは、接続されたデバイスに複数のパーティションが用意されている場合、先頭のパーティションしか認識しません

したがってストレージ領域はUSBメモリの先頭に作成する必要があります。

Ubuntu9.04本体をインストールする領域を残してサイズを決めます。

Ubuntuには最低2GB程度は取っておくべきでしょう。

位置 :先頭
サイズ :任意
タイプ :基本パーティション
フォーマット :FAT32
マウントポイント :指定しない


でパーティションを作成します。

FAT32WindowsでもLinuxでも読み書き出来るファイルシステムです。NTFSだとLinuxでは認識しないので注意。


続いてUbuntu9.04本体用の領域を、

サイズ :任意
タイプ :基本パーティション
フォーマット :ext4
マウントポイント :/


でフォーマットします。


進む」をクリックすると警告が出ます。

FAT32でフォーマットした領域にマウントポイントが設定されていないから、そのパーティションはフォーマットしても使えない、という旨の警告です。

無視して進みましょう。


!!!!!すごく重要!!!!!

インストールメニューの最後のステップで拡張ボタンをクリックします。

ブートローダをインストール」にチェックが入っているのを確認します。

ブートローダをインストールするデバイスを、先ほど確認したインストール先デバイス(今回はsdb)に変更します。

デフォルトではPC内臓のHDDを指定していますので、この設定をちゃんとせずにインストールすると、そのPCは起動できなくなります


一応断っておきますが、このサイトをご覧いただいてUSBメモリにUbuntuをインストールした結果PCが使えなくなっても当方では責任は負いかねます。



【4】インストール

すべて間違いなく設定できたらあとはインストールするだけです。

途中でエラーが出たりしなければOKです。





起動CDの作成方法については次回のエントリでご紹介します。

テーマ : UNIX/Linux
ジャンル : コンピュータ

最新記事
カテゴリ別 記事一覧
最新コメント
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。