
Ubuntu日本語フォーラム

ログインしていません。
行き詰まったので質問させてください。
【現象】
USB HDD を /backup に mount するように fstab に以下の記載を行っているが mount されない。またデバイスそのものが認識されない。
proc /proc proc defaults 0 0 # / was on /dev/sda1 during installation UUID=05609a27-f216-4d5b-a817-8e356f06df0f / ext4 relatime,errors=remount-ro 0 1 UUID=96b2147d-bf06-4475-8ef4-f5c5e20d4a1e /backup ext4 defaults,users,noatime 0 0 # swap was on /dev/sda2 during installation UUID=5c5d0508-43b1-43f3-9ea9-adac01cfad2c none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
【環境】
・Ubuntu 9.04 Jaunty Jackalope 32bit Ja
・ファイルシステム:起動、USB HDD 共に ext4
【補足】
USB HDD の UUID は "blkid" コマンドにより、gnome-mount による mount 時に確認した "96b2147d-bf06-4475-8ef4-f5c5e20d4a1e"。
また fstab の第6フィールドを 1、または 2 にしたとき、boot 時に inode を認識できない旨のエラーが表示される。
さらに fstab の該当行をコメントアウトし、gnome-mount で mount した後 umount し、"sudo mount /dev/sdb1 /backup" を実行すると mount される。
【付記】
本日より USB HDD を常時接続した状態にするつもりで作業を進めていたが、それまでは必要なときのみ ( HDD バックアップ時のみ ) gnome-mount による自動 mount を行っていた。そのため Jaunty かつ ext4 以前の環境でも同様かどうかは不明。
最後の編集者: avidya (2009-05-24 17:11:46)
fstabの記述でファイルタイプを ext4dev でオプションをextents,barrier=0,mballocniするとext4の機能拡張が使えるという記事を2、3見かけましたがマウント自体の記事では無いので外していたらすみません。
↑↑↑
外しました、すみません。
9.04 HDD -> ext3 USB -> ext4 の環境では通常の記述で大丈夫でした。
(役に立たない情報の提示でもうしわけないです)
最後の編集者: hir0 (2009-05-23 21:49:35)
オフライン
中間報告です。
9.04 -> ext4 USB ->ex4 での fstab への記述ですが、いまだに解決策が見つかっていません。いろんなサイトにうまくいったケースを見つけることができるのですが、私の環境では軒並だめでした。
業を煮やして /etc/rc.local スクリプトに mount コマンドの記述をしてみたりもしましたが、やはりだめでした。
現在 mount できない理由はおぼろげながら見えてきています。
・fstab 読み込み時に /dev/sdb1 が作成されていない
・fstab に記載する UUID は実は単なる /dev/disk/by-uuid 内にあるシンボリックリンクに過ぎない
・更にはそのシンボリックリンクは /dev/sdb1 を指している
どうもこの 3 点がネックになっているようです。
予想されているかとは思いますが、おそらく、
・デバイスの準備が、USBはそこそこ後。
・さらに、USBに接続されている機器の取り込みはもっと後。
・起動時のファイルシステムのmountは結構初期の段階。
というところかと思います。
1つ気になるのは、以下の手順をした場合はどうなるのでしょうか?
1.とりあえず立ち上げる。
2.デバイスはとりあえずunmountしておく。
3.fstabに、最初の質問に書かれている内容を記述。
4.mountにて、fstabの情報を利用してmountさせてみる。
これでだめだとすると・・・どうしよう?
余談。
もし、ほんとうに単なるシンボリックリンクだとすると、デバイスのsd?の部分自体が変化してしまう可能性がある場合、uuidによる固定化は、じつは無意味ということになっちゃいますね・・・デバイスが接続されるつど、デバイス内の情報で更新(リンク先の変更)がされたりするんでしょうか・・・?
オフライン
mount位置を固定化したいと質問を置き換えてもよろしいでしょうか。
gnome-mountでは実用的でないのでしょうか。
mount位置の固定化であれば下記の手順で設定できます。
ただし、固定位置を/backupにすることはできません。あしからず。
実行する前に注意が一つあります。fstabで設定した/backupやfstabテキスト内の定義は削除してください。
手順
(1)USB-HDDを接続してubuntu を起動する。
(2)デスクトップ上にアイコン表示されなければ、場所メニューよりUSB-HDDの各パーティションをマウントして
デスクトップ上にアイコンを表示させる。
(3)デスクトップ上のアイコンでmount位置を固定したいアイコンをマウスで選択して右クリックー>プロパティー>
Driveタブ選択ー>タグ画面中央の設定をクリックー>マウントポイント : /media/行にbackupと入力ー>閉じる
(4)ubuntu 再起動
説明
gnome-mountを使用して /media/backup にマウント位置を設定する方法を記述しました。
option定義もDriveタグの設定で出来ますがデフォルトで困ることはないでしょう。
メディアの認識はUUIDで行われますのでより安全だと思います。
オフライン
weykさん による投稿:
・デバイスの準備が、USBはそこそこ後。
・さらに、USBに接続されている機器の取り込みはもっと後。
・起動時のファイルシステムのmountは結構初期の段階。
ええ、この点は ( 大雑把ですが ) 理解はしていました。つまり本来は USB HDD は起動時の mount 時には USB デバイスそのものを認識していないので、mount が不可能である、ということですよね。
それで USB デバイスをシステムに取りこむタイミングがどこなのか rc?.d を調べていたのですが、現在のことろまだ理解に至っていません。
weykさん による投稿:
1つ気になるのは、以下の手順をした場合はどうなるのでしょうか?
1.とりあえず立ち上げる。
2.デバイスはとりあえずunmountしておく。
3.fstabに、最初の質問に書かれている内容を記述。
4.mountにて、fstabの情報を利用してmountさせてみる。
ですが、"sudo mount -U UUID /backup" での mount は問題なく行えます。ただし fstab の該当場所をコメントアウトして boot しないと、デバイスそのもが認識されなくなります。つまり次のような手順でないとデバイスそのものを認識しません。
1.fstab の該当行をコメントアウトして boot
2.ログイン後 USB HDD を物理的に接続して gnome-mount で自動 mount
3.マウスオペレーションにより umount
4."sudo mount -U UUID /backup" で mount
weykさん による投稿:
もし、ほんとうに単なるシンボリックリンクだとすると、デバイスのsd?の部分自体が変化してしまう可能性がある場合、uuidによる固定化は、じつは無意味ということになっちゃいますね・・・デバイスが接続されるつど、デバイス内の情報で更新(リンク先の変更)がされたりするんでしょうか・・・?
これについてはペンディングにさせてください。検索してヒットしたページにたまたま書かれていた情報なので、これらのシンボリックリンクがどのタイミングで、どのように使われているのかがまだ不明ですので。
最後の編集者: avidya (2009-05-24 08:03:07)
のんきさん による投稿:
mount位置を固定化したいと質問を置き換えてもよろしいでしょうか。
そうしたいのですが、今回のキモはハードウェアのコネクタまわりに対する物理的な負担を最小限にしたいので USB HDD を接続したまま mount 可能にする、ということなんですよ。
バックアップ用デバイスとして用意している USB HDD には、毎日バックアップを取るので、ケーブルの抜き差しは最小限にしたいんです。ケーブル側の断線等ならケーブルを交換するだけですむのですが、HDD 側のコネクタが接触不良を起こすとアウトなので。
のんきさん による投稿:
gnome-mountでは実用的でないのでしょうか。
mount位置の固定化であれば下記の手順で設定できます。
gnome-mount についてまだ調べないといけないことが残っているのですが、ケーブルの抜き差しを伴わない mount が可能なら gnome-mount でもまったく問題はありません。
【追記】
UUID も gnome-mount により動的に割り当てられている、という可能性が否定できません。
というのは USB HDD を接続したまま以下の手順を実行すると mount 時に "mount: スペシャルデバイス /dev/disk/by-uuid/60ac59a9-50a4-4931-bc67-fcab113b146b が存在しません" というエラーが発生します。
1.USB HDD を接続したまま boot
2."sudo mount -U 60ac59a9-50a4-4931-bc67-fcab113b146b /backup" を実行
nautilus で確認したところ、エラーメッセージ通りスペシャルデバイス 60ac59a9-50a4-4931-bc67-fcab113b146b は存在しません。また /dev/sdb1 も存在しません。
hir0さん による投稿:
9.04 HDD -> ext3 USB -> ext4 の環境では通常の記述で大丈夫でした。
とのことですので、ひょっとして ext4 固有の問題なのでしょうか?クリーンインストールした状態で、/dev/sda1 の fstab の書式は
UUID=05609a27-f216-4d5b-a817-8e356f06df0f / ext4 relatime,errors=remount-ro 0 1
のまま手を加えていません。
【途中経過】
いろいろ検索してみたところ、OS 側の ext4 サポートがまだ充分に整っていないという記述が多く見られるので、バックアップ用 USB HDD を ext3 に戻している最中。
これから fstab に再度記述してテスト。
解決案でなくてごめんなさい.
avidyaさん による投稿:
weykさん による投稿:
もし、ほんとうに単なるシンボリックリンクだとすると、デバイスのsd?の部分自体が変化してしまう可能性がある場合、uuidによる固定化は、じつは無意味ということになっちゃいますね・・・デバイスが接続されるつど、デバイス内の情報で更新(リンク先の変更)がされたりするんでしょうか・・・?
これについてはペンディングにさせてください。検索してヒットしたページにたまたま書かれていた情報なので、これらのシンボリックリンクがどのタイミングで、どのように使われているのかがまだ不明ですので。
シンボリックリンクを張るのは udev の役目です.カーネルの発行する「ホットプラグイベント」に udevd が反応して処理します.
該当部分は /etc/udev/rules.d/60-persistent-storage.rules の
# import filesystem metadata
IMPORT{program}="vol_id --export $tempnode"
# 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}"です.
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2009-05-24 12:25:56)
オフライン
kiyoshiさん による投稿:
なぜUUIDが違うのですか?途中でext3に戻したので変わってしまったのでしょうか?それとも違うパーティションなのでしょうか?
UUIDが違って当然でしたら、私の勘違いです。この投稿は無視してください。
いや、私もそれを知りたいくらいで (^_^;)
いろいろ環境を変えながらテストしてリブートする度に変わるんですよ。ext4 の場合と ext3 の場合でブートプロセスが違うのかと思い、
それで現在システム側の HDD を ext3 に戻して検証中です。
ubuntu でのことでは無いのですが似たような状態にあります.
玄箱HG(powerpc) で kernel は 2.6.25.1,
ハード構成が変わることは殆ど無いので udev は導入せず,
ノード /dev/sd[a-f] /dev/sd[a-f][1-9] は静的に作成してあります.
外付け USB HD(LOGITEC LHD-EDU2)を 3 台 HUB 経由で接続し,/etc/fstab に
/dev/sda5 /mnt/disk0 vfat defaults,dmask=022,fmask=133,uid=1000,gid=1000 0 0 /dev/sdb5 /mnt/disk1 vfat defaults,dmask=022,fmask=133,uid=1000,gid=1000 0 0 /dev/sdc5 /mnt/disk2 vfat defaults,dmask=022,fmask=133,uid=1000,gid=1000 0 0
を記述していますがシステム起動直後ではマウントしていません.
システム起動後
# ssh root@玄箱HG
でログインして
# mount -a
でマウントしています.
それでもたまに「/deb/sdc5 は正常なブロックデバイスではない」と蹴られることもあります.
玄箱は NFS サーバとして殆ど常時稼働で運用していますし,
理由あってわざと自動にしていない起動シークエンスが他にもあるので,
それほど不都合には感じていません.
私はこのモデルの USB HD の反応の遅さが原因ではと疑っています.
アクセスがない状態が続き HD の回転が止まった後でのアクセスでは 20 秒ぐらい待たされることもあります.
省電力設計で各部への電源供給を止めていてウォームアップに時間がかかる印象です.
システム起動直後もウォームアップが間に合っていないのではと感じています.
UUID の問題と切り分けるため,/etc/fstab の 記述を /dev/sdb1 を使ったものにして
起動シークエンスでマウントできるかを実験しては如何でしょうか.
編集:デバイスノードの記述に些細なミス
最後の編集者: einundzwanzighundertsechs (2009-05-24 17:56:56)
オフライン
皆さんからいろいろアドバイスを頂いているにもかかわらず、申し訳ありません。
OS の設定まわりで、あまり時間をかけてもいられないので、とりあえずこの件につきましてはペンディングし、先送りにしたいと思います。運用上 gnome-mount を使わないという選択肢は有り得ないので udev を使わないわけにもいかないので、将来的に NAS を導入して、NAS にバックアップを取る方向で進めたいと思います。
おさわがせして申し訳ありませんでした。
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2009-05-25 23:03:15)
オフライン
kiyoshiさん による投稿:
UUIDが変わる現象は興味深いので、もしもその原因が分かりましたら、ご連絡くだされば非常に嬉しいです。
UUID が変化する時としない時があることは確認できているので、わたしが何かをしてしまっているのだとは思うんです。ただ現状でその何かを掴めていません。
確定的なことは言えないのですが fstab を変更した後、USB HDD デバイスを一切認識しなくなってから、fstab の該当部分をコメントアウトして reboot した後に UUID が変化していると思うのですが、断定するに至ってません。
さすがにこの件で 1 日潰すとかもうできないので、何かが分かったら報告します。
# ちなみに今現在は筐体内部の SATA HDD、外付け USB HDD 双方、ext3 の状態です。
最後の編集者: avidya (2009-05-25 05:50:59)
取り急ぎ報告します。
本日の Kernel を含むアップデート後、USB HDD がデフォルトで自動マウントされました。
そこで以下の手順を久しぶりに試してみました。
1.UUID を "sudo blkid" で確認
2.fstab に記載
3.再起動
結果、起動時に USB HDD が問題なく /backup に mount されました。
# アップデートのリリースノートはこれから時間を見つけて確認します。
# ちなみに UUID="82fbdea7-891d-419e-88d9-95fa160d093f" となっていて、また変わっています。
# UUID が変化する理由については、究明作業を行っていません。時間がとれないのでご容赦ください。
基本的に(探した範囲では)、UUIDが変化するのは、
・フォーマット時。自動的に採番され割当られる。
・tune2fsで明示的に指定値もしくは自動的に採番された値が再割当できる。
のようです。つくづく不思議ですね・・・。
ところで、もし、該当のマシンに、他に同じ機種(の外付けHDD)をつなげていないのであれば、udevに定義して、デバイス名を固定にしてしまう というのも1つの案かもしれません。たとえば、特定のバスに接続されている特定ベンダーの特定型番に対して、「/dev/sdb*」ではなく、「/dev/hoge*」とする とか。その上で、fstabではこの名前でマウントポイントを指定すれば、フォーマットし直しても同じということになる・・・・・・ような気がします。
# すいません、ちらっとudevの説明を読んだだけなので、どこまで可能かわかりません。また、同じデバイスを2つ買うとえらいことに。
オフライン
【報告】
以下の構成の時にfstabにUSB HDDのUUIDを記述することで、USB HDDの起動時mountがおこなわれることを確認しました。
・内部HDDが1台でext3かつUSB HDDがext3の時
以下の場合はfstabにUSB HDDのUUIDを記述しても、OSブート時にエラーが発生しmountされないことを確認しました。
・内部HDDが1台でext4かつUSB HDDがext3の時
なお、たまたまテスト可能な状況が発生したため、他の状況のテストは行っていません。
# 端的に言うと、いろいろアレなことをしているうちにOS再インストールしなければならない状況が発生したので
# ついでにテストしました。