お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#26 2009-08-26 02:12:34

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: USBメモリのオートマウント

einundzwanzighundertsechs さん、こんにちは。

#25 に同じく、
gconf-editor の apps -> nautilus -> preferences で、media_automount と media_automount_open のチェックを外して自動マウントを停止。
/etc/fstab に下記のように記述。#11 と同じです。

UUID=62F2-2E03    /media/usb    vfat auto,users,umask=000,rw,utf8    0    0

下記の内容を /etc/udev/rules.d/ に、01-usbmem.rules のような名前で保存して再起動。
これで、起動時にマウントされていました。
コマンドは mount でも /bin/mount でもどちらでも大丈夫なようです。

KERNEL=="sd*", RUN+="mount /dev/%k"

また、/dev/sda1 のようにデバイスを決め打ちする場合ですが、udev が動いている環境では結局認識順でデバイス名が変わる恐れがあると思い、下記のように UUID を直接記述する方法を取ってみましたが、これでも問題なく起動時にマウントされていました。

KERNEL=="62F2-2E03", RUN+="mount 62F2-2E03"

と、ここまでアドバイスに従ってやってみましたが、Mild7 さんとまったく同じ環境というわけではないですし、疑似と言ってもどこまで疑似に出来ているのか分かりませんので、多少でも参考になるのかも不明なのですが・・・。
Mild7 さん、もしまだ見ていたら、私のやってみたことを試してみてください。

と言うか、私はのめり込むタイプなので、このあたりになってくると完全に私の興味なんですけどね(^^;)
あと、もし似たような問題で嵌ったりしている人がいたら、その人のために掘り下げようというのが私の中に常にあるので、みなさんお付き合いしていただいてありがとうございました。
なんか他にお気づきの点があったら教えてください。

オフライン

 

#27 2009-08-26 06:13:20

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBメモリのオートマウント

petitbootangさん,こんちちは,残念ながら #26 の実験は幾つかの点で正しくありません.

== /etc/fstab に auto オプションが書かれています.
そのため Ubuntu が起動時に /etc/fstab を使ってマウントする「いつもの機構でマウント」されている可能性があります.実験結果を正しく評価するには noauto を記述する必要があります.

#25 でも /etc/fstab に同じく auto を記述していたとすると,それは rc.local でマウントされたものではないことになります.rc.local が働いていることを観るには /etc/fstab とマウント先を違うものにするのが良いでしょう.
/etc/fstab --> /mnt/usb1, rc.local --> /mnt/usb2

== 2つ目のルールは KERNEL の使用法が間違っているので無効です.
KERNEL="..." に書くのはカーネル名 sd* とか hd* とかを書きます.UUID にはマッチしません.従ってここでは間違いなく「いつもの機構でマウント」でマウントしているのでしょう.

UUID や LABEL を使って mount がマウント出来るのは udev が/dev/disk/by-{uuid,label}/ 以下にシンボリックリンクを作成するからです.そのルールは /lib/udev/rules.d/60-persistent-storage.rules にありますので,udev ルールで UUID を使う場合の参考になるでしょう.

コード:

# by-label/by-uuid links (filesystem metadata)
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"

petitbootangさん による投稿:

gconf-editor の apps -> nautilus -> preferences で、media_automount と media_automount_open のチェックを外して自動マウントを停止。

gnome(nautilus)を起動しない状態にすれば良いのでコンソールログインで試せば,より「組み込み linux」に環境は近いと思います.

オフライン

 

#28 2009-08-26 11:30:02

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: USBメモリのオートマウント

einundzwanzighundertsechs さん

ご指摘ありがとうございます。
確かに、/etc/rc.local にも /etc/fstab にも、auto が記述されたまま作業しました。
そこで、/etc/fstab を下記のように noauto で書き直し、

/dev/sdb1    /media/usb    vfat noauto,users,umask=000,rw,utf8    0    0

udev ルールを下記のように変更して試してみたところ、

KERNEL=="sdb1", RUN+="/bin/mount /dev/sdb1"

起動時にマウントされていました。
私の環境の場合、デバイス決め打ちなら /dev/sdb1 なので sdb1 を指定しました。
また、挙動をよく確認したところ、コマンドはやはり mount だけではマウント出来ず、/bin/mount にすることでマウントされるようになりました。
これで、一応正しい実験結果と言えますでしょうか?

マウントポイント自体を /media 配下ではなく、/mnt 配下やまったく違うディレクトリで試してみた方が良いでしょうか?
それと、/etc/rc.local でのマウントについても、後ほど確認してみます。

オフライン

 

#29 2009-08-26 14:03:29

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBメモリのオートマウント

petitbootangさん による投稿:

これで、一応正しい実験結果と言えますでしょうか?

フルパスが必要なことが確認出来たことからも正しい結果と言えます.御苦労様でした.

ところで,udev の実験には

* シミュレーションで udev ルールの記述を確認する. その他にも monitor, control, 等のサブコマンドがあります.

コード:

$ sudo udevadm test --action add `udevadm info --query=path --name=sdb1`

* udev をデバッグモードで起動してデバイス抜き差し時の挙動を監視する.

コード:

$ sudo invoke-rc.d udev stop
$ sudo udevd --debug

等も使えるかと... 後者は実験後 sudo invoke-rc.d udev start で復帰できるはずなのですが,此方では gnome-terminal が挙動不審に陥ったので再起動しました.要注意です.

オフライン

 

#30 2009-08-26 14:48:05

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBメモリのオートマウント

Mild7さんに補足

einundzwanzighundertsechs による投稿:

実験結果を正しく評価するには noauto を記述する必要があります.

これはあくまでデスクトップ機で実験する場合のことであって,BeagleBoard の環境では「/etc/fstab に auto, rcスクリプト に mount -a」が最初に試すべきことでしょう.

オフライン

 

#31 2009-08-27 01:05:26

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: USBメモリのオートマウント

その後、/etc/rc.local でのマウントも試してみましたが、残念ながら上手くマウントすることが出来ませんでした。

/etc/fstab を下記のまま、

/dev/sdb1    /media/usb    vfat noauto,users,umask=000,rw,utf8    0    0

/etc/rc.local ではマウントポイントを変えて下記のように記述しましたが、

mount -t vfat /dev/sdb1 /mnt/usb users,umask=000,rw,utf8

再起動後に、$ mount で確認してもマウントされていませんでした。
どこかに齟齬があるでしょうか?

オフライン

 

#32 2009-08-27 04:26:34

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBメモリのオートマウント

$ sudo /etc/rc.local でコンソールから実行してみれば mount コマンドオプションが間違っていることが解るでしょう.

オフライン

 

#33 2009-08-27 04:44:54

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBメモリのオートマウント

対かです.
この段階で「いつもの機構でマウント」していないことが確認できたので rc.local だけ編集して mount できれば実験成功となりますよね.ですからマウント先を変える必要がなくなったので rc.local に
mount /deb/sdb1
とか
mount /media/usb
とだけ記述しても OK です.## マウントオプションは /etc/fstab で集中的に管理 ##

オフライン

 

#34 2009-08-27 04:49:18

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBメモリのオートマウント

「追加です」を急いで追加したら誤変換なのに送信してしまった...
そして訂正
mount /dev/sdb1
です.

オフライン

 

#35 2009-08-27 14:47:28

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: USBメモリのオートマウント

einundzwanzighundertsechs さん による投稿:

$ sudo /etc/rc.local でコンソールから実行してみれば mount コマンドオプションが間違っていることが解るでしょう.

重要なご指摘をくださり、大変ありがとうございました。

/etc/fstab を下記のとおりにし、

/dev/sdb1    /media/usb    vfat noauto,users,umask=000,rw,utf8    0    0

rc.local に、mount /dev/sdb1 or /media/usb を記述して再起動したところ、どちらでも起動時にマウントされていることが確認出来ました。
# デバイスのマウントと言うのは、非常に奥が深くて面白いですね。

オフライン

 

#36 2009-08-30 15:35:40

Mild7
メンバ
登録日: 2009-02-23

Re: USBメモリのオートマウント

すみませんでした。しばらくPCに触れる機会が無くて
/etc/fstab  に
/dev/sda1    /mild7www    vfat auto,users,umask=000,rw,utf8    0    0

/etc/rc.local に
mount /dev/sda1
これで自分も出来ましたことを報告させていただきます。

オフライン

 

#37 2009-09-03 01:18:27

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: USBメモリのオートマウント

Mild7 さん、良かったですね。
最近、解決に至るトピックが少ない気がしますので、私も大変嬉しく思います。
また、私自身色々と勉強させていただき、とても楽しかったです。
ありがとうございました。

オフライン

 

Board footer

Powered by FluxBB