ターミナルでシステムを選択して再起動...
ターミナル操作で起動に使用したいシステムを選択して再起動する事は可能でしょうか?
リモートログインして、起動ディスクを切り替えたく考えています。
ターミナル操作で起動に使用したいシステムを選択して再起動する事は可能でしょうか?
リモートログインして、起動ディスクを切り替えたく考えています。
blessコマンドを使います。
Y. Kawabeさん
ご回答ありがとうございます。
blessコマンドを理解できておりません。
man bless を見てもチンプンカンプンです。
お手数をおかけしますが、具体的な使用方法をご教授頂けないでしょうか。
device指定して、setBootするだけだと思うけど。
man見て、さらにググって見てもわからないようなら、やめたほうがいいんじゃないですか?VNCじゃだめなんですか?
Choose startup disk via AppleScriptがご参考になるのでは...
何となく雰囲気が掴めますのでこれもご参考になさって下さい。
System Preferences > Startup Diskより早いですがGUIで行ったほうが良いと思います。
nvram -pでboot-deviceのところに表示した英数字をxxx, yyy, zzzに書き込みます。volume名のdisk1, disk2, disk3...はspaceを入れると動きません。" "やbackslashを使わないと...
SelectStartupDisk
#! /bin/bash
echo "select the system you want to use to startup your computer?"
read STUD
case $STUD in
disk1) sudo nvram boot-device="xxx"; sudo reboot;;
disk2) sudo nvram boot-device="yyy"; sudo reboot;;
disk3) sudo nvram boot-device="zzz"; sudo reboot;;
*) echo "It doesn't exist.";;
esac
ありがとうございます。
bless -mount "/Volumes/name of the disc" -setBoot
を自分の環境で試してみました。
"/Volumes/name of the disc"
の部分は起動させたいボリュームをドラッグしました。
下記エラーが表示されました。
nvram: Error (-1) setting variable - 'boot-device'
/usr/sbin/nvram returned non-0 exit status
Can't set Open Firmware
やはり、基本的な事を理解できていないので、止めた方が良いのでしょうか。
ARD(又はVNC)が利用できない時に ssh で起動ディスクを切り替えたく思っていました。
man blessに載っていますけど...
sudo bless --mount "/Volumes/Disk2" --setBoot
sudo reboot
# " "を変更すれば動きます。
リモートログインはsudoなしで、blessのpathが必要かも。
メッセージから見ると、blessが内部で呼んでいるnvramコマンドで失敗しているようですから、ブートデバイスの指定がまずいか、あるいはOFにパスワードをかけたりしてませんか?
うちのところでは「sudo bless --device /dev/disk?s? --setBoot」で何の問題も無く切り替えられてます。
皆様、お騒がせしました。
やはり、私の基本的な操作ミスです。
エラーの原因は「sudo」を入力するのを忘れていた為でした。
sudo bless -mount "/Volumes/name of the disc" -setBoot
で動作確認できました。
ありがとうございました。
追加で質問させてください。
皆さんのご説明や man bless の EXAMPLES でも
bless --mount "/Volumes/Mac OS" --setBoot
とオプション部分のハイフンがふたつ並び(--)ですが、
ハイフンひとつ(-)の場合と違いがあるのでしょうか?
こちらの動作確認ではどちらも変わりない様ですが、Google 検索で引数指定とオプション指定の違いがある旨を説明しているサイトがありました。
また、「システム環境設定」を開いている状態では bless コマンドが効かない様です。
これは「システム環境設定」を閉じておけば問題ありませんし、私の環境に因るものかもしれません。
Pantherなどは-でしたがTigerになって何時の間にか--になりました。古いoptionも使えますがmanに書かれているので覚えられたほうが...
single user modeではdeviceでないと動きません。
sudo bless --device /dev/disk_s_ --setBootを実行すると...
nvramのboot-deviceに英数字31桁?が書き込まれます。
確認はこのコマンドで...
nvram -p
System Preferences > Startup Diskで選択したのと同じです。
Option(--)を使えばSystem Preferencesを開いていても動きます。
載せたshell scriptをblessに変更で動きます。早いですよ!!
本来UNIXでの原則は、オプションは「-a」のように「-」+英数字1文字です。複数のオプションを付ける場合、「-a -b」のように並べるか「-ab」のように繋げてもよいことになっています。つまり「-mount」は「-m -o -u -n -t」と見なすのが原則なのです。
この原則が壊れ始めたのは、X Windowシステムのアプリケーションからじゃないかとおもいます。X11ではオプションが大変多いため、1文字では逆に混乱するとみたのか、文字列をそのまま一つのオプションとして使うようになりました。(これについては歴史的な事実を調べたわけではないので、間違ってるかもしれません。)
これに対し、GNUのアプリケーションでは、1文字のオプションは「-」、文字列のオプションは「--」を使うことを標準としています。
Darwinのオリジナルアプリでは、X11アプリのように「-」+文字列をオプションとして使っていることが多く、さらにGNU互換のためか「--」も同じ扱いにしているようです。
私としては、GNUの仕様が一番すっきりしていて好きです。
余談ですが、「--」だけをコマンドラインに含めると、シェルがオプションの終わりとして扱ってくれます。例えば「-a」というファイルを作ってしまってこれを削除したいとき、「rm -a」だと「-a」がオプションとして扱われてエラーになってしまいます。こんなときは「rm -- -a」とすればOK。
ぴっぴさん、Y. Kawabeさん、詳細なご説明頂き、ありがとうございました。
・・・余談・・・
逆向きの「そんちょう」が並んでいると可愛いですね。
「TOKIO」のファンなんです。
ターミナルでシステムを選択して再起動...