2016年1月16日土曜日

読み取り専用

ある作業をしようとPC(Linux)にUSB接続しているカードリーダーにSDカードを挿し、その中のファイルをひとつ削除しようとすると読み取り専用なので削除できないと警告が出た。

読み取り専用? うっかりロック用のスライドに触ってしまいロックしてしまったのかと確認したがアンロックの状態である。

ああ、またか、実は以前にも一度あるのだ、共通しているのは「Windowsからファイルを操作した後でそうなった」という点である。

しかも、今回は書き込もうとしたファイルが大きすぎて入らずに、不要なファイルを削除してから新規で足した後である、これらの操作が関係しているかはわからないが、前回もWindowsで使った後だったのでもしかすると無関係ではないのかもしれない。

読み込みそのものは全く問題ない、なので手っ取り早い解決法として全てのファイルを一旦PCに退避した後にフォーマットしたのだ、SDカードの寿命を縮めてしまうが「0(ゼロ)」で埋めてFAT16形式で完全にフォーマットした。

その後は退避させていたファイルをSDカードに戻したのである、以前のように読み書きできるようになったので問題解決。

ある日突然SDカードが読み取り専用となった時の対処はいろいろある、本当ならば原因を知るという観点からもターミナルからいろいろやってみて解決するというのが良いのだろうが、手っ取り早い解決の方法としてフォーマットで属性もろとも消し去ってしまうというのもひとつの選択肢・・・なのだと思う。



(2016年11月30日追記)

またもや同じ不具合発生、ぐぬぬぬ、前回同様にフォーマットしなおすことで対処しようかと思ったが癪に障るので他の解決法を探してみた。

さて、どうしてくれようぞと考えた結果、そうだ、「fsck」コマンドで修復を図ってみたのだった、まず「lsblk」コマンドでブロックデバイスのリストを確認し、SDカードを見付けておく。

次に、私の場合だとUSB接続のSDカードは「sdb1」なので、

sudo /sbin/fsck /dev/sdb1

・・・と、管理者で実行、あっけなく解決した、再フォーマットの手間はたいしたことはなかったが、最初からこれに気付いていればよかった。

もちろんこれはSDカードの内容をHDDにフルコピーでバックアップの後に実行した。