Macを使用。microSDにddコマンドでイメージを書き込むばあい、アンマウントする必要があります。しろうとには、このへんが疑問であります。


アンマウントは、OSから外部記憶装置を切り離すことと理解しています。そもそも切り離してしまったら、そののち、microSDに書き込めないのではないでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2016/07/11 11:14:49
  • 終了:2016/07/13 18:51:35

ベストアンサー

id:pyopyopyo No.3

pyopyopyo回答回数337ベストアンサー獲得回数792016/07/13 02:57:37

マウント=ファイルシステムに繋ぐ,という意味です
ファイルシステムはOSに内蔵されたプログラムのようなものです.
SDカードをマウントすると,ファイルシステムがSDカードを占有して,
ファイル単位でSDカードを読み書きするようになります.

一方 dd コマンドは,バイト単位で直接SDカードを読み書きするプログラムです

ファイルシステムとddコマンドで,同時にSDカードを読み書きすると
データが破損する危険性があります

そこで安全策として,dd コマンドはマウント中のディスク,つまりファイルシステムが使用中のディクスにはアクセスしないように作られています.

id:torimaki

なるほど。理解できました。ありがとうございます!

なんとなく、マウントによりSDカードに下地がつくられ、そのうえで、ddコマンドにより読み書きさせているように、おもっていました。ほぼ、逆でしたか。

2016/07/13 05:45:58
id:pyopyopyo

その通りです!

OSには,ブロックデバイス,というレイヤがあって,それが"下地"になります.
ブロックデバイスというレイヤで直接SDカードを操作するのがddコマンドです.

このブロックデバイスに,ディレクトリとかファイルという抽象化されたレイヤを与えるのがファイルシステムで,そこにSDカードを接続するのが mount です.

2016/07/13 15:54:09

その他の回答(2件)

id:degucho No.1

degucho回答回数245ベストアンサー獲得回数622016/07/11 21:20:22

こちらのかたの説明がわかりやすいかと思いますが
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1419325084
電気的に繋がっていることととOSがファイルシステムとして認識することは別です。
Macであればディスクユーティリティでボリュームをマウント解除しても
SDカードは消えないのでわかると思います。
電気的に繋がる→/devの下に認識
マウント→/Volumesの下に認識
と考えてください

id:torimaki

たしかに、ひと(とりわけ、私には)「MacにMicroSDを差し込めば、もう、つながっているじゃないか」という感じがあります。でもMacにとっては、そんなことはなく、おそらくフォーマットして、はじめてMicroSDを認識している...んですよね?

ま、この理解が正しいことを前提にしますと、やはり、せっかく認識したものを、わざわざアンマウントする(okamotoyさんのおっしゃるところの手放なす)理由が、やはり、よく分かりません。

「電気的に繋がる→/devの下に認識」「マウント→/Volumesの下に認識」が肝のような気がしているのですが、ごめんなさい、このへんが分かりませんでした。

2016/07/12 15:32:54
id:okamotoy No.2

okamotoy回答回数116ベストアンサー獲得回数132016/07/12 01:02:19

 「マウントする」ということは「microSD」というファイルを「あるプログラム」が「占有している」ということです.
 なので「dd」は「microSD」というファイルにデータを書くことができません.
 「アンマウント」すると,「あるプログラム」が「microSD」というファイルを「手放す」ので,「dd」が「microSD」というファイルに書くことができます.
#####
 「OSが認識する」という考え方を一度忘れていただき,
   「microSD」に「あるプログラム」が書くときには「マウント」が必要
   「microSD」に「dd」というプログラムが書くときには「マウント」が不要
と考えるとよいと思います.

id:pyopyopyo No.3

pyopyopyo回答回数337ベストアンサー獲得回数792016/07/13 02:57:37ここでベストアンサー

マウント=ファイルシステムに繋ぐ,という意味です
ファイルシステムはOSに内蔵されたプログラムのようなものです.
SDカードをマウントすると,ファイルシステムがSDカードを占有して,
ファイル単位でSDカードを読み書きするようになります.

一方 dd コマンドは,バイト単位で直接SDカードを読み書きするプログラムです

ファイルシステムとddコマンドで,同時にSDカードを読み書きすると
データが破損する危険性があります

そこで安全策として,dd コマンドはマウント中のディスク,つまりファイルシステムが使用中のディクスにはアクセスしないように作られています.

id:torimaki

なるほど。理解できました。ありがとうございます!

なんとなく、マウントによりSDカードに下地がつくられ、そのうえで、ddコマンドにより読み書きさせているように、おもっていました。ほぼ、逆でしたか。

2016/07/13 05:45:58
id:pyopyopyo

その通りです!

OSには,ブロックデバイス,というレイヤがあって,それが"下地"になります.
ブロックデバイスというレイヤで直接SDカードを操作するのがddコマンドです.

このブロックデバイスに,ディレクトリとかファイルという抽象化されたレイヤを与えるのがファイルシステムで,そこにSDカードを接続するのが mount です.

2016/07/13 15:54:09

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません