忍者ブログ

Azukish

消えゆく世界と流れる未来に最後の灯を since 2006/4/3

2024/04/25

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

2015/01/19

fstabについて

Linuxのめんどくささの一つに/etc/fstabを挙げたい(願望)
/etc/fstabってのはLinuxが起動する時にどのディスクをどんな風にマウントすれば良いかっていう設定を書き込む場所。
まあ、ちょっと独特なので書くのが面倒。
備忘録的に付けてみる。

なお、fstabを弄ってその設定がミスってると、起動時に死にますw
いじるときは必ずバックアップを取り、間違いは無いか気をつけるようにするか、TRY&ERRORの精神で突っ走ってくださいww



そもそもマウントって・・・

USBメモリとかSDカードとかを入れた時に自動でディスクをファイル管理ソフトで開けるようになる。
このときに何をやってるかっていうと、
USBメモリを指す→なんか入ってきたぞとハードウェアからOSに伝わる→「マウント」→ファイル開ける!
みたいな感じだと思う。
要はパソコンに接続したハードウェアをソフトに認識させる操作みたいな感じか。
詳しくはググれ。

で、Linuxでハードウェアのマウントをさせるにはmountコマンドを使用する。
↓こんな感じ(要管理者権限)
# mount /dev/sda1 /mnt
↑のコマンドだと/dev/sdaで認識されてるハードウェアのパーティションの一つである/dev/sda1を/mntってところに認識させてる。
このコマンドの後に/mntに行けば、/dev/sda1の中身が見れるはず。
ディストリによって異なるとは思うけれど、大抵は/dev/sdなんちゃらをマウントすれば事足りるはず。
USBとかでどれがどれに対応してるか不明な場合は抜き差ししてlsで確認して増えてるやつを見つければ良い(危険度:中)

マウントしたパーティションの入ってる記憶媒体を抜く場合は、アンマウントの作業をする。
windowsでいうところの「安全に取り外す」とかなんとかいうやつに当たる。
上でマウントしたやつをアンマウントする場合は
# umount /mnt
でできる(要管理者権限)

/etc/fstabについて

OS起動時とかUSB差されたときに手動でマウントとアンマウントをいちいちやるのは面倒くさい。
そこで、udevとかfstabとかいう仕組みがある。
udevってのはOSで認識できるパーティションを勝手にマウント/アンマウントしてくれる仕組み。
ただ、udevだけでは起動時にどのパーティションをそのファイルシステムとして読めば良いのか分からない。
そこでfstabの出番なわけですよ。

fstabの中身を確認すると
$ cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon Jan  6 08:45:01 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=58716fe3-729a-42fa-afc5-bc4840d29ad1   /                       ext4    defaults                   1 1
UUID=0010-645D                              /backup                 vfat    defaults,uid=1000,gid=1000 1 2
UUID=b45aeef8-f2f3-43cd-ac14-f85627b87a13   /hdd                    ext4    defaults                   1 2
こんな感じになってると思う。
で、6つの半角スペースで区切られた文字列で構成されてるっぽいことがわかる。

まず1つ目、UUID=で始まる奴。
各パーティションにはUUIDという固有の名前が付いている。
そいつの名前を一番初めに指定してやる。
/dev/sda1みたいな名前で決めてもいいけれど、その場合、フォーマットしたりして名前が変更される可能性があるのでUUID推奨。
このUUIDは、次のようにしてどのパーティションがどんなUUIDなのか確認することができる。
$ blkid
/dev/sda1: UUID="14BC8210BC81EC94" TYPE="ntfs" PARTUUID="34008179-01"
/dev/sda2: UUID="E45C894E5C891C84" TYPE="ntfs" PARTUUID="34008179-02"
/dev/sda3: UUID="58716fe3-729a-42fa-afc5-bc4840d29ad1" TYPE="ext4" PARTUUID="34008179-03"
/dev/sdb2: UUID="b45aeef8-f2f3-43cd-ac14-f85627b87a13" TYPE="ext4" PARTUUID="bdaa95ac-02"
/dev/sdb3: UUID="10408CC14A407BB6" TYPE="ntfs" PARTUUID="bdaa95ac-03"
/dev/sdb5: UUID="0010-645D" TYPE="vfat" PARTUUID="bdaa95ac-05"
また、このUUIDって非常に長ったらしいのでLABEL指定することもできる。
blkid labelとかでもググって、どうぞ。

2つ目、マウントする場所。
上で書いたmountコマンドで書いたのと同じ感じ。
上の例だと、UUIDが5871...のパーティションの中身が/に入ることになる。

3つ目、そのパーティションのファイルシステム。
linuxの場合はext4で、windowsの場合はNTFSでフォーマットされてることが多いけれど、そうじゃない場合もある。
上のblkidで出てるTYPE=の後の部分を書いとけば問題は無い。
あと、NTFSの場合、何かと問題が起こるかも知れないので、windowsとlinuxをデュアルブートで共存させてかつファイルを共有する場合、その共有用パーティションはFAT32でフォーマットした方が何かと幸せかも知れない。
ただ、FAT32は死んだ時の復旧が大変だとか、32GBの制限とか色々面倒なので、そういう人はUSBメモリでやり取りした方が楽かもね。さすがM$規格

4つ目、マウントするときのオプション。
ここが一番面倒かも知れない。詳しくは次のリンクを踏んで欲しい。
fstabの設定 | UNIXLife
まあ、とりあえず、一般ユーザでそのパーティションの中身を弄りたいときには、
Ext4の場合→defaults
FAT32の場合→defaults,uid=そのユーザID,gid=そのユーザの入ってるグループID
にしておけばいい(適当)
今ログインしてるユーザ名、そのユーザIDや加入してるグループIDは↓のコマンドで確認できる。
$ whoami
azuki
$ id azuki
uid=1000(azuki) gid=1000(azuki) groups=1000(azuki),18(dialout),54(lock),36(kvm)
この場合だと、ユーザ名はazuki、ユーザIDは1000で、グループIDは1000。
なお、Ext4の場合、一般ユーザでそのパーティションの中身を弄りたければ、マウント先ディレクトリのRead+Writeのための権利をそのユーザに与えておく必要がある。
まあ、chownとかchmodで適当にやっちゃってください。

5つ目、6つ目は安全性のために、一応、
ルート(/)の入っているパーティション→1 1
ルートの入ってないパーティション→1 2
にしておくことをおすすめする。ダンプとかチェックとかのためのフラグらしいんだけれど、あまりお世話になったことは無いなあ・・・。

まあ、こんな感じでfstabを弄れば問題は無いと思われる。
あとは、再起動かけてみて、動かなければセーフモードか何かで起動させてひたすらfstabの中身を動くように弄ってみるしかないと思われます。

拍手

コメント













カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

アーカイブ

AD

Azkishはamazon.co.jpを宣伝しリンクすることによって サイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。