意外とめんどいmac OSXでのddコマンド
使う人はよく使う、dd commandですが、mac OSXにも標準搭載されています。
しかし、/dev/以下とか、mountの仕組みがLinuxと異なるので、注意点(1)(2)を書いてみます。
!!注意!!
ddコマンドは間違えると起動不能に陥ったりします。
用法、用量を守って、正しくお使い下さい。
!!!!!!!!!
(1) /dev/disk#がディスク(#には0以上の数値が入ります)
Terminal (ターミナル)を開いて、以下コマンドをしてみましょう。
ls /dev/disk*
するとこんなんが出ると思います。
/dev/disk0 /dev/disk0s1 /dev/disk0s2 /dev/disk0s3
僕の環境はmacbook airで元々搭載しているディスクはSSD 1個で、
それが/dev/disk0。
/dev/disk0上の論理パーティションが/dev/disk0s1、/dev/disk0s2 、/dev/disk0s3と3個あります。
まあ、ddコマンドを知っている人には説明不要ですね。
Linuxでは/dev/sd* (*はa, b, c...)なのに、macだと/dev/disk*になるわけです。
では、例えばUSBメモリにddコマンドでイメージを書き込みたい場合を考えます。
USBメモリを刺して、もう一度ls /dev/disk*してみましょう。
するとこうなるかと。
/dev/disk0 /dev/disk0s1 /dev/disk0s2 /dev/disk0s3 /dev/disk1 /dev/disk1s1
ハイ、これでUSBメモリが/dev/disk1として認識されることがわかりました。
(macの環境に依って違うので、必ず上記確認をしてください)
(2)macの「外す」はumountとデバイス外しを両方やっちゃう
terminalで
df
とコマンドしますと、現在マウントされているディスクが見えます。
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk0s2 116809872 91340152 24957720 79% 11481517 3119715 79% /
devfs 367 367 0 100% 636 0 100% /dev
map -hosts 0 0 0 100% 0 0 100% /net
map auto_home 0 0 0 100% 0 0 100% /home
/dev/disk1s1 15052032 3616 15048416 1% 0 0 100% /Volumes/UNTITLED 1
/dev/disk1s1が/Volumes/UNTITLED 1としてマウントされているのがわかりますね。
この状態ですと、ddコマンドでエラーになるので、アンマウントします。
ここで、よっしゃアンマウントね、と、
Finderで表示される取り出しボタンや(下図)...
しかし、/dev/以下とか、mountの仕組みがLinuxと異なるので、注意点(1)(2)を書いてみます。
!!注意!!
ddコマンドは間違えると起動不能に陥ったりします。
用法、用量を守って、正しくお使い下さい。
!!!!!!!!!
(1) /dev/disk#がディスク(#には0以上の数値が入ります)
Terminal (ターミナル)を開いて、以下コマンドをしてみましょう。
ls /dev/disk*
するとこんなんが出ると思います。
/dev/disk0 /dev/disk0s1 /dev/disk0s2 /dev/disk0s3
僕の環境はmacbook airで元々搭載しているディスクはSSD 1個で、
それが/dev/disk0。
/dev/disk0上の論理パーティションが/dev/disk0s1、/dev/disk0s2 、/dev/disk0s3と3個あります。
まあ、ddコマンドを知っている人には説明不要ですね。
Linuxでは/dev/sd* (*はa, b, c...)なのに、macだと/dev/disk*になるわけです。
では、例えばUSBメモリにddコマンドでイメージを書き込みたい場合を考えます。
USBメモリを刺して、もう一度ls /dev/disk*してみましょう。
するとこうなるかと。
/dev/disk0 /dev/disk0s1 /dev/disk0s2 /dev/disk0s3 /dev/disk1 /dev/disk1s1
ハイ、これでUSBメモリが/dev/disk1として認識されることがわかりました。
(macの環境に依って違うので、必ず上記確認をしてください)
(2)macの「外す」はumountとデバイス外しを両方やっちゃう
terminalで
df
とコマンドしますと、現在マウントされているディスクが見えます。
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk0s2 116809872 91340152 24957720 79% 11481517 3119715 79% /
devfs 367 367 0 100% 636 0 100% /dev
map -hosts 0 0 0 100% 0 0 100% /net
map auto_home 0 0 0 100% 0 0 100% /home
/dev/disk1s1 15052032 3616 15048416 1% 0 0 100% /Volumes/UNTITLED 1
/dev/disk1s1が/Volumes/UNTITLED 1としてマウントされているのがわかりますね。
この状態ですと、ddコマンドでエラーになるので、アンマウントします。
ここで、よっしゃアンマウントね、と、
Finderで表示される取り出しボタンや(下図)...
同様にFinderで右クリックして出てくる「eject」「取り出し」をしてはいけません。
試しにやってみて頂いてもいいですが、これをやると
/dev/disk1としての認識も外されてしまいます。
僕らが欲しいのは、
・ls /dev/disk*をすると/dev/disk1 、/dev/disk1s1 が出て来て
・dfしても/dev/disk1s1がマウントされていない状態
です。
長くなってしまいましたが、
正解はまず、dfコマンドで(上記)USBメモリの/dev/disk1s1がマウントされているデイxレクトリを見つけます。
今回の場合は/Volumes/UNTITLED 1 ですね。
でumountコマンドに-fvオプションを付けてアンマウントをします。
umount -fv /Volumes/UNTITLED\ 1/
(スペース等特殊文字の前にはバックスラッシュ(環境により¥)が入ります)
さあさあ、上記(1)(2)が終われば、いつものddコマンドが戻ってきます。
例として以前のポストに書いた、Chromium OSのイメージをUSBメモリに焼いてみましょうか。
Chromium OSのイメージは/Users/casey/Downloadsに置いてあります。
sudo dd if=/Users/casey/Downloads/ChromeOS-Vanilla-3887.0.2013_03_21_1643-r67d9ef1a.img of=/dev/disk1
(sudo実行です。ユーザパスワードの入力要)
イメージの書き込みは思いのほか時間がかかりますので、コマンドが終了するまで気長に待ちましょう。
Comments
助かりました。
が、
一点できない動作がありました。
umount -fv ***
ですが、
operation not permitted
と返されて実行できず。
調べてみたら、
diskutil unmount ***
で可能でした。
セキュリティの関係でしょうか?
OS X 10.10.5
Macbook Pro
にて。