読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】fstab に UUID を書きたいけど、どこで調べるん?blkid・lsblk、ラベル、user・users・noauto と systemd のマウントユニット【LPICレベル1】

17レスカテゴリ:Linux
1: 名無しさん

USB ディスクを /mnt/backup にいつもつなぎたい
fstab に /dev/sdb1 と書いたら、挿す順番で sdc1 になった日にマウントに失敗した

2: 名無しさん

前提のおさらい。/etc/fstab は「デバイス マウントポイント 種類 オプション dump fsck順」の6つの欄。デバイス名は挿す順番で変わることがあるから、UUID かラベルで書く

3: 名無しさん

>>1
UUID とラベルは blkid で調べる。ファイルに作ったファイルシステムで試した
blkid e4.img → LABEL="data" UUID="2e006f3e-…" BLOCK_SIZE="1024" TYPE="ext4"
fstab には UUID=2e006f3e-… /mnt/backup ext4 defaults 0 2 か LABEL=data …

4: 名無しさん

>>3
逆に UUID から場所を探すのは blkid -U か findfs UUID=…。udev がある環境なら /dev/disk/by-uuid/ と /dev/disk/by-label/ にリンクもできる

5: 名無しさん

>>3
lsblk でも見られるんちゃうの?

6: 名無しさん

>>5
lsblk -f や lsblk -o NAME,FSTYPE,LABEL,UUID,MOUNTPOINTS で一覧になる。ただ試した環境は udev が動いてなくて、FSTYPE と UUID の欄が空やった。lsblk は udev の情報を使うから、空なら blkid で直接読む

7: 名無しさん

>>2
ラベルはどうやって付けるん?

8: 名無しさん

>>7
作るときに mkfs.ext4 -L、mkfs.xfs -L、mkfs.vfat -n、mkswap -L。あとからなら ext 系は e2label か tune2fs -L、XFS は xfs_admin -L、FAT は fatlabel、スワップは swaplabel

9: 名無しさん

>>1
一般ユーザーでもマウントさせたい

10: 名無しさん

>>9
fstab のオプションで決める(mount の man)
user:一般ユーザーがマウントできる。外せるのはマウントした本人だけ
users:誰でもマウントできて、誰でも外せる
owner:デバイスの所有者なら
user と users は noexec・nosuid・nodev も付いたことになる

11: 名無しさん

>>10
noauto は mount -a(起動時も)でマウントしない。挿したときだけ使う USB ディスクは noauto,user にしとくと、mount /mnt/backup で本人がつなげる
defaults は rw・suid・dev・exec・auto・nouser・async のまとめ

12: 名無しさん

>>1
デスクトップで挿したら勝手に /media の下に出てきたけど、あれは?

13: 名無しさん

>>12
/media は取り外せるメディアのマウントポイント(FHS)。デスクトップの自動マウント(udisks2)は、Debian 系では /media/ユーザー名/ラベル、Fedora などは /run/media/ユーザー名/ラベル につなぐ

14: 名無しさん

>>2
systemd のマウントユニットって?

15: 名無しさん

>>14
fstab の行は起動時に .mount ユニットに変換されてる。自分で書くこともできて、名前はマウントポイントから決まる(systemd.mount の man)
systemd-escape -p --suffix=mount /mnt/backup/data → mnt-backup-data.mount
中身は [Mount] に What=/dev/disk/by-uuid/…、Where=/mnt/backup/data、Type=ext4、Options=defaults

16: 名無しさん

>>15
空白は \x20 に置き換わった。/media/user/USB DISK は media-user-USB\x20DISK.mount。使うときだけつなぐなら .automount ユニットもある

17: 名無しさん

>>3
UUID とラベルは blkid、一般ユーザーは user か users、挿したときだけなら noauto、systemd ではマウントポイントの名前の .mount。もう sdc1 で困らへん

管理人のひとこと