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

現在起動しているUbuntuの/ディレクトリのパーティションのPBRをバックアップし、そこにGRUBを上書きするツール

Ubuntu9.04用のGTKツール(GUI版)です。他のバージョンでも正常に動作するかもしれません。
ただし、内蔵HDDにインストールされたUbuntuで起動している場合にのみ正常に動作します。

現在使用しているUbuntuの/ディレクトリを含むパーティションのPBRをバックアップします。そして、そこにGRUBを上書きします。バックアップされたファイルの名前は、
(そのデバイスファイル名。例えばsda1)pbr(現在の西暦年月日。例えば2009-06-28)_(時刻。例えば、22:02:30)+(グリニッジ標準時刻からのずれ。例えば09:00)
となります。例えば、
sda1pbr2009-06-28_22:02:30+09:00
となります。

以下のファイルをダウンロード(右クリックして保存)してファイル名をinstGRUBinPBR.shに変えてください。
instGRUBinPBR.txt

そして、Ubuntuなどの端末でダウンロードしたファイルの存在するディレクトリに移動して、
$ bash ./instGRUBinPBR.sh
で実行してください。
もしくはダウンロードしたファイルを右クリックして「プロパティ」ー「アクセス権」で
「プログラムとして実行できる」にチェックすれば、
ダブルクリックで「実行する」をクリックすることでも使えるようになります。

instGRUBinPBR.txt
の内容は以下のとおりです。


#!/bin/bash
gksudo -m "Grubで情報を得るためにパスワードを入力してください。" sleep 1
kernelver=$(uname -r)
while [ "$(ps auwx|grep gksudo|grep -v "grep gksudo")" ]
do
sleep 1
done
a=$(sudo grub --batch <find /boot/vmlinuz-${kernelver}
quit
EOF
)
b=$(echo $a|sed -e "s/grub>/\n/g"|grep vmlinuz-${kernelver}|sed -e "s/find \/boot\/vmlinuz-${kernelver}//")
grubid=""
dev=$(more /etc/mtab|grep " / "|cut -d" " -f1)
d=$(echo $dev|cut -c9-)
if [ -z "$d" ]
then
zenity --title="GRUBをPBRへインストール" --warning --text="/パーティションのデバイスファイル名を正しく取得できませんでした。終了します。"
exit 0
fi
d=$(expr $(echo $d) - 1)
for a in $b
do
if [ "$(echo $a|sed -e "s/(hd[0-9]\,//"|sed -e "s/)//")" = "$d" ]
then
grubid=$(echo "${grubid} $a")
fi
done
# zenity --info --width=400 --text="現在起動しているUbuntuの/ディレクトリを含むパーティションのデバイスファイル名は\n${dev}\nです。\n現在使用しているカーネルのバージョンは\n${kernelver}\nです。\nこのカーネルを含むパーティションのGRUB上での認識記号は\n${grubid}\nです。"
grubidslc=""
for a in $grubid
do
d="/dev/sd$(echo "abcdefghijklmn"|cut -c$(expr $(echo $a|sed -e "s/\,/\n/"|head -n1|tr -d "(hd") + 1))$(expr $(echo $a|sed -e "s/\,/\n/"|tail -n1|tr -d ")") + 1)"
grubidslc="${grubidslc} FALSE ${a} ${d} $(sudo fdisk -l ${d}|grep "ディスク"|grep "バイト"|tr -d " "|cut -d: -f2)"
done
a=$(zenity --title="GRUBをPBRへインストール" --width=600 --list --radiolist --text="GRUBをインストールするデバイスにチェックを入れてください。" --column="↓チェック" --column="GRUB認識記号" --column="デバイスファイル名" --column="容量" ${grubidslc})
if [ $? = 1 ]
then
zenity --title="GRUBをPBRへインストール" --warning --text="キャンセルが押されました。GRUBをインストールせずに終了します。"
exit 0
fi
if [ -z "$a" ]
then
zenity --title="GRUBをPBRへインストール" --warning --text="何もチェックされませんでした。GRUBをインストールせずに終了します。"
exit 0
fi
d="/dev/sd$(echo "abcdefghijklmn"|cut -c$(expr $(echo $a|sed -e "s/\,/\n/"|head -n1|tr -d "(hd") + 1))$(expr $(echo $a|sed -e "s/\,/\n/"|tail -n1|tr -d ")") + 1)"
# echo $a = $d
backup="$(echo ${d}|cut -c6-)pbr$(date --rfc-3339=second|tr " " "_")"
sudo dd if=${d} of=${backup} bs=512 count=1 && zenity --title="GRUBをPBRへインストール" --info --text="現在の${d}のPBRを${backup}に保存しました。これからファイルマネージャで保存したディレクトリを開きます。" && nautilus "$PWD"
sudo grub --batch <root $a
setup $a
quit
EOF
zenity --title="GRUBをPBRへインストール" --info --text="GRUBを${a}=${d}にインストールしました。"
exit 0

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

プロフィール

kiyoshi

Author:kiyoshi
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
since 2011/9/25
現在の閲覧者数:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。