出産前後の痔にはご注意!

debian を使っていて
SDカード(fat32)が自動マウントされた時に
読み込み専用モードでマウントされてしまい、
書き込みできないことがよくあります。
SDカード横のスイッチで書き込み不能になっているわけでもないのにです。
次のコマンドを試すのですが、うまくいきません。

$ sudo chmod 777 -R /media/usb0
chmod: `/media/usb0/Thunderbird/j29smriz.default/Inbox' のパーミッションを変更しています: 読み込み専用ファイルシステムです

$ sudo mount -t vfat -o rw,remount /media/usb0
Usage: mount -V : print version
mount -h : print this help
mount : list mounted filesystems
mount -l : idem, including volume labels
So far the informational part. Next the mounting.
The command is `mount [-t fstype] something somewhere'.
Details found in /etc/fstab may be omitted.
mount -a [-t|-O] ... : mount all stuff from /etc/fstab
mount device : mount device at the known place
mount directory : mount known device here
mount -t type dev dir : ordinary mount command
Note that one does not really mount a device, one mounts
a filesystem (of the given type) found on the device.
One can also mount an already visible directory tree elsewhere:
mount --bind olddir newdir
or move a subtree:
mount --move olddir newdir
One can change the type of mount containing the directory dir:
mount --make-shared dir
mount --make-slave dir
mount --make-private dir
mount --make-unbindable dir
One can change the type of all the mounts in a mount subtree
containing the directory dir:
mount --make-rshared dir
mount --make-rslave dir
mount --make-rprivate dir
mount --make-runbindable dir
A device can be given by name, say /dev/hda1 or /dev/cdrom,
or by label, using -L label or by uuid, using -U uuid .
Other options: [-nfFrsvw] [-o options] [-p passwdfd].
For many more details, say man 8 mount .

解決法をご教授ください。
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

同じく、読み込み専用になるのは不明ですが…


vfatにchmodが効くのかどうか…という問題もあるかと。

vfat(fat32)自身にUNIX系のパーミッションという考え方自体(オーナー/グループ/その他への読み書き実行)がありません。
# 属性として「読み込み専用」「隠しファイル」とかはありますな。

http://d.hatena.ne.jp/Tanakky/20080327
とか。ちょっと古いブログエントリですが。


マウントした先で特定のディレクトリ/ファイルだけ…ということであれば、カード上のフラッシュメモリの破損の可能性も考えた方がいいかと思われます。
ものによっては変な壊れ方しますので。
# 安物デジカメに使っていたSDカードはフォーマットは出来る(完了したように見えただけかも知れん)のに撮影データの書き込みが出来ない。とか、
# USB3.0のメモリは、ある時点で書き込んである内容が変更できなくなった(読み込みは全く問題ない)。とか…。

あんましオススメはしませんがWindowsでスキャンディスク(エラーセクタの検査あり)してみるとか。
# ただし、コレでトドメを刺す場合もありますし正常だった場合でもフラッシュメモリの寿命を削ります。そういう意味でオススメできない。

Windowsで読み込みできるウチに別のSDカードにコピーしておくことを勧めますね。

この回答への補足

No.1 の方の欄に追記しておきました。
どうもありがとうございました。

補足日時:2014/11/21 07:47
    • good
    • 0
この回答へのお礼

ありがとうございます。
現在出張中でありまして、
出張から帰ってから自宅のマシンで確認いたします。

> vfat(fat32)自身にUNIX系のパーミッションという考え方自体(オーナー/グループ/その他への
> 読み書き実行)がありません。
言われてみれば確かにそうですね。
盲点でした。

質問本文にはエラーメッセージの一部しか張り付けませんでしたが、
特定のディレクトリだけということではなく、
パーティション全体が
読み込み専用としてマウントされております。

お礼日時:2014/11/09 12:53

remount するときは -t を指定しません。


例:
$ sudo mount -o remount,rw /media/usb0

読み込み専用でマウントされてしまう理由はわかりません…。

この回答への補足

出張から帰ってからなかなか ro でマウントされなかったため遅くなり、申し訳ありいません。
まず、-t オプションについては
$ sudo mount -o remount,rw /media/usb0
mount: you must specify the filesystem type
と出ていました。

そして、昨日 ro でマウントされたため、
$ sudo mount -t vfat -o rw,remount,umask=000 /dev/sdb1 /media/usb0
を実行した後に
/etc/fstab の中の該当行を
/dev/sdb1 /media/usb0 auto rw,user 0 0
から
/dev/sdb1 /media/usb0 auto rw,user,noauto,umask=000 0 0
に書きかえました。
$ mount の中身の該当行は
/dev/sdb1 on /media/usb0 type vfat
(rw,nosuid,nodev,noexec,relatime,uid=1001,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=utf8,shortname=mixed,errors=remount-ro,user=oppappi)
になりました。
すると、書き込みが可能になり、
再起動しても書き込み可能な状態が(少なくとも今のところ)続いております。
/etc/fstab を編集したので、もう ro でマウントされることはないと思いますが。

皆さん、どうもありがとうございました。

補足日時:2014/11/21 07:50
    • good
    • 0
この回答へのお礼

ありがとうございます。
現在出張中でありまして、
出張から帰ってから自宅のマシンで確認いたします。

お礼日時:2014/11/09 12:52

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QマウントしたUSBメモリに書き込みができない

USBメモリをマウントしましたが、そこに書き込むことができません。
OS:Debian Lenny
USBメモリのファイルフォーマット:NTFS

1, /mnt/usbmemディレクトリをアクセス権777で作成する
2, USBメモリをUSBスロットに差し込む
3, GNOMEの「システム」→「コンピュータ」にUSB Flash Diskのアイコンが表示される
4, 「アイコン右クリック」→「プロパティ」で、DriveタブとVolumeタブのマウント・ポイントをusbmemに、ファイルシステムをntfsに設定
5, 「アイコン右クリック」→「ボリュームのマウント」でマウント
6, 素の中身のファイルは表示されるが、そこに新しいファイルやフォルダを作成することができない
7, 「アイコン右クリック」→「プロパティ」→「アクセス権」タブにてアクセス権が読み込み専用となっていたので、変更しようとしたが、「アクセス権を変更できませんでした。」となる。

試行錯誤:
マウントをしている時のみ、/mediaディレクトリにusbmemというフォルダが作成されており、そのアクセス権は555です。このアクセス権を777にすると、
シェル上では「許可されていない操作です」と、変わらずなります。
GNOME上では、右クリックでフォルダの作成メニューがでますが、作成しようとすると「転送先への書き込み権限がありません。」となってしまいます。

NTFSにはlinuxのアクセス権設定が存在しない事が原因かもしれないと考えていますが、何をどうすれば書き込みができるようになるのか分かりません。

というわけでどうか教えてください。

USBメモリをマウントしましたが、そこに書き込むことができません。
OS:Debian Lenny
USBメモリのファイルフォーマット:NTFS

1, /mnt/usbmemディレクトリをアクセス権777で作成する
2, USBメモリをUSBスロットに差し込む
3, GNOMEの「システム」→「コンピュータ」にUSB Flash Diskのアイコンが表示される
4, 「アイコン右クリック」→「プロパティ」で、DriveタブとVolumeタブのマウント・ポイントをusbmemに、ファイルシステムをntfsに設定
5, 「アイコン右クリック」→「ボリュームのマウント」でマウン...続きを読む

Aベストアンサー

まず、環境がどうなっているのかが不明です。
勝手に想像して確定項目を書きます。
間違っていたら、補足されたし。
1.Debian n.nをHDDのパーティションにインストールして、使用している。
2.USBメモリにNTFSフォマットして、そこに、読み書きしたい。
3.そこでこのマウントコマンドがよく分からないので質問をしている。

ここで、補足して貰う必要があること。
1./etc/fstabのUSBメモリの状態を補足すること。
2.fdisk -lで、USBメモリの物理アドレス(/dev/sdb1等)は何か。
3.NTFSフォマットしなければならない理由。
FAT32フォマットの方が、WINDOWSと、LINUXのデータのやり取りで、
便利がよく、NTFSフォマットでは、特殊なmountコマンドを使用する
ため。
[ヒント]
mount -t ntfs-3g /dev/sdb2 /media/sdb2 -o remove_hiberfile

man mountの説明を読むこと。

どうしてもntfを読み書きの必要がある場合、
man mountを読んでも不明である場合は、不明店を記載すること。
全てを説明する時間も根気もないため。

まず、環境がどうなっているのかが不明です。
勝手に想像して確定項目を書きます。
間違っていたら、補足されたし。
1.Debian n.nをHDDのパーティションにインストールして、使用している。
2.USBメモリにNTFSフォマットして、そこに、読み書きしたい。
3.そこでこのマウントコマンドがよく分からないので質問をしている。

ここで、補足して貰う必要があること。
1./etc/fstabのUSBメモリの状態を補足すること。
2.fdisk -lで、USBメモリの物理アドレス(/dev/sdb1等)は何か。
3.NTFSフォマットし...続きを読む

Q/ が何時の間にか「Read-only file system」になってしまった

PlamoLinuxの3くらいを使っています。
18日間起動しているマシンで、
いつものように作業をしようと思ったら、
なぜか動作が変でした。
いろいろと調べてみると、どうやら
/ が何時の間にか「Read-only file system」になっていました。
そのため、/tmpに一時的に書き込んだりする
プログラムの動作がおかしくなったのではないかと思っています。
試しに「# touch /tmp/test」を実行すると
「Read-only file system」とか「読み込み専用ファイルシステムです」
と文句を言われてしまいます。
/etc/fstabと/etc/mtabを確認したところ、
「/dev/hda2 / ext3 defaults 1 1」
「/dev/hda2 / ext3 rw 0 0」
だったので、問題はないかなと思っています。
「# mount -o rw,remount /」を試してみると、
block device /dev/hda2 is write-protected, mounting read-only
と言われてしまいました。
ログを確認したところ、7/30 04:26に書き込まれたのが最後で、
それ以上書かれていないところからすると、
その直後くらいに / がRead-onlyになってしまったようです。
ちなみに、ログにはおかしな記録は見当たりませんでした。

/dev/hda1がswap
/dev/hda2が/
/dev/hda3が/boot
/dev/hda4が/home
で、/だけがRead-onlyになってしまったようで、
/home, /bootは書き込めました。
再起動はできるだけしたくないのですが、
元にもどす方法はないでしょうか?
宜しくお願いします。

PlamoLinuxの3くらいを使っています。
18日間起動しているマシンで、
いつものように作業をしようと思ったら、
なぜか動作が変でした。
いろいろと調べてみると、どうやら
/ が何時の間にか「Read-only file system」になっていました。
そのため、/tmpに一時的に書き込んだりする
プログラムの動作がおかしくなったのではないかと思っています。
試しに「# touch /tmp/test」を実行すると
「Read-only file system」とか「読み込み専用ファイルシステムです」
と文句を言われてしまいます。
/etc/fsta...続きを読む

Aベストアンサー

dmesg を実行したり /var/log/messages を調べると kernel から何かファイルシステムに関するエラーが出力されていませんでしょうか。経験上、ファイルシステムのエラー(I/O error)によって強制的に Read-Only モードに移行させられているように見えます。

もし I/O error 等のエラーが出ている場合は、/ 以下だけではなく、出来れば全パーティションのバックアップを早急に行うことをオススメします。もしディスクの破損が原因であれば、バックアップ作業中に止まってしまう事もありますので、バックアップ作業自体にもリスクを伴うことにご注意下さい(止まってしまうと二度とブートできなくなる、という現象を目の当たりにしたこともあります)。

HDD のセクタ内の情報が単に矛盾しているだけであれば、サーバの再起動後にシングル・ユーザ・モードで fsck を実行してファイルの整合性を確認することが必要です。

もしファイル情報の不整合がハードディスクの物理的な故障によるものであれば、ハードディスクの交換作業が必用になってしまいます。。

まずは、ログを確認して、どのようなメッセージが出ているか確認をなされてみては如何でしょう。上記の記述は最悪のケース、ですので。。

dmesg を実行したり /var/log/messages を調べると kernel から何かファイルシステムに関するエラーが出力されていませんでしょうか。経験上、ファイルシステムのエラー(I/O error)によって強制的に Read-Only モードに移行させられているように見えます。

もし I/O error 等のエラーが出ている場合は、/ 以下だけではなく、出来れば全パーティションのバックアップを早急に行うことをオススメします。もしディスクの破損が原因であれば、バックアップ作業中に止まってしまう事もありますので、バックアップ作...続きを読む

Qapt-get install ****** でinstallしたものをuninstallするには?

御世話になります。
vncserverだけをinstallするつもりが
誤って
apt-get install vncとうってしまいました。
これをuninstallしたいのですが
どのようにすればよろしいでしょうか?

教えて下さい。

Aベストアンサー

# apt-get remove パッケージ名
では、設定ファイルは削除されずに残ります。

完全に削除するときは、
# apt-get --purge remove パッケージ名
です。

Q書き込み権限が無いためコピーできない

フォルダーの中のファイルやフォルダーをほかのフォルダーにコピーをしたり移動をすると「このフォルダーの書き込み権限がありません」というエラーが出ます。
~$su
~# にして、コピペしても,コマンドからコピーしても同じ結果です。
なぜでしょうか?
OSはebian GNU/etchです。

過去ログを参考にしたのですが、その回答を引用すると
>
エラー対象のフォルダが
所有者:root
パーミッション:read olny
となっていませんか?
$ ls -lコマンドで確かめてください。
dr-------- xx root xxx
と表示されませんか。?そうであれば
$ chmod u+w エラーとなるフォルダ
で書き込み属性を追加して下さい。

で、その通りしてみたのですが。

~$ ls -l /etc/sj□□□
合計 24
drwxr-xr-x 2 book book 4096 2009-04-20 15:18 □□□d
-rw-rw---- 1 book book 393 2009-04-20 15:23 □□□.inc
-rw-r--r-- 1 root root 299 2009-04-20 15:23 □□t
-rw-r--r-- 1 root root 873 2009-04-20 15:23 □□□
-rw-r--r-- 1 root root 2086 2009-04-20 15:23 □□.env
-rw-r--r-- 1 root root 0 2009-04-20 15:23 □□.inc
-rw-r--r-- 1 root root 0 2009-04-20 15:23 □□.inc
-rw-rw---- 1 book book 49 2010-01-16 01:33 passwd
となります。

ちなみに、
/etc/sj□□□ のプロパティでアクセス権 をみるとroot root
コピーしたいファイル のプロパティでアクセス権 をみると アカウントユーザ名 ユーザーの本名となっていて、両者全然別物です。

とりあえず言われた通り
~$ chmod u+w /etc/sj□□□
してみたら
chmod: changing permissions of `/etc/sj□□□': 許可されていない操作です。
となるし、
chown でコピーしたいファイルの方を root:root に書き換えてみましたが
これもエラーがでました。

どなたか解決策教えてください。

フォルダーの中のファイルやフォルダーをほかのフォルダーにコピーをしたり移動をすると「このフォルダーの書き込み権限がありません」というエラーが出ます。
~$su
~# にして、コピペしても,コマンドからコピーしても同じ結果です。
なぜでしょうか?
OSはebian GNU/etchです。

過去ログを参考にしたのですが、その回答を引用すると
>
エラー対象のフォルダが
所有者:root
パーミッション:read olny
となっていませんか?
$ ls -lコマンドで確かめてください。
dr-------- xx root xxx
と表示さ...続きを読む

Aベストアンサー

root になったら、出来ないことはないくらいの権限が与えられるはずなのですが・・・

/etc にあるファイルって、全部といっていいくらい root の所有ファイルだと思うのですが、book さん所有のファイルも入ってるってことですか。

book さんのファイルの所有者を root に変更する場合、御存じだとは思いますが、まず
 $ su
 # chown root.root foo (foo は任意のファイル名のことです)
とやれば、何らかのファイル(ここでは foo)の所有者は root.root になるはずです。

けれど、ファイルをコピーするのに、/etc の中で所有者を変更する必要もないのでは?
たとえば、/etc 以下の foo というファイルを、自分のホームディレクトリにコピーしようと思えば、
 $ cp /etc/foo /home/watashi/ (watashi は、ホームディレクトリのユーザー・アカウント)
とすればコピーできてしまうはずです。
その後で、ホームディレクトリで root に変身して
 # chown watashi.watashi foo
とすれば、ホームディレクトリ下の foo というファイルの所有者は watashi になりますから、
 # exit
とやって、元の身分(?)に戻ってから、そのファイルに対する処理を行えばよいはずだと思います。

> ~$ chmod u+w /etc/sj□□□

これは、当該ファイルの所有者が自分に変更された後なら分りますが、所有権がないのに実行しても、エラーになるのではないでしょうか。
私だったら、その前にコピーをすませておいて、そのコピーされたファイルの所有者を変更してから、
 $ chomod u+w sj□□□
とします(つまり、/etc にある方のファイルは、設定をいじらずに、そのままにしておきます)。
しかし、単にそのファイルの内容を見るだけなら、chmod は不要でしょう。

以上、かなり分りにくい書き方になったかもしれませんが、そもそも、仮に cp コマンドが効かないとしたら、何かが根本的におかしいのではあるまいかという気がします。

root になったら、出来ないことはないくらいの権限が与えられるはずなのですが・・・

/etc にあるファイルって、全部といっていいくらい root の所有ファイルだと思うのですが、book さん所有のファイルも入ってるってことですか。

book さんのファイルの所有者を root に変更する場合、御存じだとは思いますが、まず
 $ su
 # chown root.root foo (foo は任意のファイル名のことです)
とやれば、何らかのファイル(ここでは foo)の所有者は root.root になるはずです。

けれど、ファイルをコ...続きを読む

QマウントしたFAT32領域に一般ユーザーで書き込めない(2)

先ほど
http://okweb.jp/kotaeru.php3?q=1717405
で質問させていただいた者です。

PCFREAK様に教えていただいた方法で、一旦は上手くいったように見えました。
しかし、実際に確認してみると上手くいっていませんでした。

具体的には、
(1)/dataから/dev/hda4をアンマウント
(2)/dataのパーミッションを777に変更(ここではちゃんと変更されている)
(3)/dataに/dev/hda4をマウント
とすると、/dataのパーミッションが755になってしまいます。

この場合、どうすればいいのでしょうか?
何度も申し訳ありませんが、よろしくお願いします。

Aベストアンサー

こんにちは。
/etc/fstab の記述を簡略化してみてはいかがでしょう。

/dev/hda4 /data vfat user,rw,suid,dev,exec,auto,iocharset=utf8 0 0

を、

/dev/hda4 /data vfat noauto,users,rw 0 0

でいかがでしょう。

user と users の違いですが、users だと、マウントした人以外のユーザーでもアクセスできるようです。
noauto 指定なので、当然自動マウントではなく、使用時にユーザーがマウントします。

Qimgファイルのマウント法

 前回質問したものです。limux(redhat9)におけるimg,binといったファイルのマウント法がわかりません。isoはできます。原因はファイル形式がわからないためだと思います。どなたか教えてください「。宜しくお願いします。

Aベストアンサー

もうあきらめたかもしれませんが...
imgファイルが hoge.img だとすると、
# mount -t iso9660 -o loop hoge.img /tmp/mnt
じゃあだめですか?

ファイルの種類はwindowsのように拡張子で決まっているのではなくて、ファイルそのものの中身に依存します。ファイルの形式を確認するには、file コマンドを使用します。

# file hoge.img

windows だと出来る可能性が高いようなので、windowsで試してみてください。

参考URL:http://www.hinocatv.ne.jp/~s_h_r/pc/daemon.htm

QLinuxのgccのインクルードパス?

Linuxのgccで、インクルードファイルやライブラリのパスを設定する方法が知りたいのですが、gccについて詳しい書籍やサイトがありましたら、教えてください。

gccとccの違いも知りたいです。

例)
#include "example.h"

このままだと、example.hが無いと表示されます。

Aベストアンサー

標準ライブラリのパスは、gccのインストール時に指定して、Cプリプロセッサの中に組み込まれます。

#include "example.h"
は、まずカレントディレクトリを探し、次に gccコマンドラインの -I オプションで指定したディレクトリを探し、最後に標準ライブラリが探されます。

#include <example.h>
は、カレントディレクトリを探さない点が異なります。

ccも基本的には同じですが、Unixの種類によって機能が異なる可能性があります。Linuxの場合はcc=gccです。

Q仮想化ソフトVurtualBoxでSDカードとUSBメモリ認識について

仮想化ソフトVurtualBoxでSDカードとUSBメモリ認識について
MacBooK PROを利用しています。
これにWindowsXP proを入れているのですが、SDカードが認識しません。
USBメモリもいろいろなサイトを見て試してみましたが、だめでした。

これらを認識させる方法を教えていただけませんか。
宜しくお願いします。

Aベストアンサー

>残念ながら、「VirtualBox Shared Folders」がでてきません。
マイ コンピュータを開いてツールバーの「フォルダ」をクリックして下さい。
左ペインに「マイ ネットワーク」があるのでこれを展開すると「ネットワーク全体」が現れます。
更に展開すると「VirtualBox Shared Folders」が見えてくるはずです。
ネットワークアダプタがどのような状態でもゲストOS側で追加した共有フォルダは見えるようになり、アクセス権は共有フォルダを指定したときに設定したモードになります。

Qマウント関数について

こんばんは。
linux初心者で困っています。助けてください。
USBのマウントの方法でわからないことがあります。

組み込みなので、コマンドではなくて、mount関数でUSBをマウントしたく、
下記の関数を使おうとおもっているのですが、

#include <sys/mount.h>

int mount(constchar* source ,constchar* target , constchar* filesystemtype ,unsignedlong mountflags , constvoid* data );

それぞれの引数に具体的にどんな値を設定していいのかわかりません。
( mount(/dev/sda1,/mnt/usb/,vfat,MS_RDONLY)とやってみたらエラーでした・・・)

具体的な設定方法をご教授願います。

また、そもそもmount関数ではなく、system関数でコマンドを実行した方がいいのでしょうか?
よろしくお願い致します。

Aベストアンサー

linuxよりもまずC言語を勉強しましょう。
文字列と数値の区別がつけられないようだとマニュアルも読めません。

そのまま書いてしまうと、
ret = mount("/dev/sda1", "/mnt/usb/", "vfat", MS_RDONLY, NULL);
でとりあえず動作するようです。
mount関数の方がマウント失敗時のエラー原因が特定出来るので、
system関数よりもmount関数を使う方がいいでしょう。

詳しい引数、オプションなどはマニュアルを見てください。

参考URL:http://www.linux.or.jp/JM/html/LDP_man-pages/man2/mount.2.html

Q端末(ターミナル)から端末を起動しコマンドを実行

お世話になります.
※端末=ターミナルです.
早速ですが,Ubuntu(Linux)の端末1から別の端末2を呼び,端末1から呼び出した新しい端末2の上でコマンドを実行する方法はありませんでしょうか?

調べてところ,
$ gnome-terminal
のオプションで,「 -e, --command」 や「 -x, --execute 」を利用することで,端末2を起動しながらコマンドを実行できる様です.(gnome-terminal --help 参照)

しかし,実際に試したUbuntu8.10では,端末2が起動するものの,その上で指定したコマンドが実行されません.

やり方をご存知の方がいましたら,ご教授よろしくお願いいたいます.

Aベストアンサー

書式を勘違いされているような?

普通に
gnome-terminal -e top &
といった形で実行できませんか?


人気Q&Aランキング