
Ubuntu日本語フォーラム

ログインしていません。
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 さん、もしまだ見ていたら、私のやってみたことを試してみてください。
と言うか、私はのめり込むタイプなので、このあたりになってくると完全に私の興味なんですけどね(^^;)
あと、もし似たような問題で嵌ったりしている人がいたら、その人のために掘り下げようというのが私の中に常にあるので、みなさんお付き合いしていただいてありがとうございました。
なんか他にお気づきの点があったら教えてください。
オフライン
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」に環境は近いと思います.
オフライン
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 でのマウントについても、後ほど確認してみます。
オフライン
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 が挙動不審に陥ったので再起動しました.要注意です.
オフライン
Mild7さんに補足
einundzwanzighundertsechs による投稿:
実験結果を正しく評価するには noauto を記述する必要があります.
これはあくまでデスクトップ機で実験する場合のことであって,BeagleBoard の環境では「/etc/fstab に auto, rcスクリプト に mount -a」が最初に試すべきことでしょう.
オフライン
その後、/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 で確認してもマウントされていませんでした。
どこかに齟齬があるでしょうか?
オフライン
$ sudo /etc/rc.local でコンソールから実行してみれば mount コマンドオプションが間違っていることが解るでしょう.
オフライン
対かです.
この段階で「いつもの機構でマウント」していないことが確認できたので rc.local だけ編集して mount できれば実験成功となりますよね.ですからマウント先を変える必要がなくなったので rc.local に
mount /deb/sdb1
とか
mount /media/usb
とだけ記述しても OK です.## マウントオプションは /etc/fstab で集中的に管理 ##
オフライン
「追加です」を急いで追加したら誤変換なのに送信してしまった...
そして訂正
mount /dev/sdb1
です.
オフライン
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 を記述して再起動したところ、どちらでも起動時にマウントされていることが確認出来ました。
# デバイスのマウントと言うのは、非常に奥が深くて面白いですね。
オフライン
すみませんでした。しばらくPCに触れる機会が無くて
/etc/fstab に
/dev/sda1 /mild7www vfat auto,users,umask=000,rw,utf8 0 0
/etc/rc.local に
mount /dev/sda1
これで自分も出来ましたことを報告させていただきます。
オフライン
Mild7 さん、良かったですね。
最近、解決に至るトピックが少ない気がしますので、私も大変嬉しく思います。
また、私自身色々と勉強させていただき、とても楽しかったです。
ありがとうございました。
オフライン