web-dev-qa-db-ja.com

UbuntuでGPTパーティションラベルを作成し、そのラベルを使用してパーティションをマウントするにはどうすればよいですか?

パーティションラベルをGPTパーティションに割り当て、そのパーティションラベルをUbuntu14.04にマウントするための識別子として使用しようとしています。

そこで、最初にGPTをセットアップし、ボリュームにパーティションを作成しました。

~# parted /dev/vdb -s -- mklabel gpt
~# parted /dev/vdb -s -- mkpart primary 0 -1
Warning: The resulting partition is not properly aligned for best performance.

次に、パーティションラベル「TEST」をパーティション1に割り当てました。

~# parted /dev/vdb -s -- name 1 TEST

そして、ext4でパーティションをフォーマットしました:

~# mkfs.ext4 /dev/vdb1
mke2fs 1.42.9 (4-Feb-2014)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6553600 inodes, 26214391 blocks
1310719 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
800 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

ここから、予想どおり/dev/disk/by-partlabelの下にvdb1へのシンボリックリンクがあることがわかります。

~# ls -l /dev/disk/by-partlabel/
total 0
lrwxrwxrwx 1 root root 10 Aug 12 13:10 TEST -> ../../vdb1

そして、それに応じてfstabの内容を設定しました( archwikiPARTLABELを見ました):

~# cat /etc/fstab
LABEL=cloudimg-rootfs   /    ext4   defaults    0 0
PARTLABEL=TEST /opt/ops/backup ext4 defaults 0 0

しかし、PARTLABEL=TESTを使用してデバイスをマウントできません。

~# mount -a
mount: special device PARTLABEL=TEST does not exist

さらに調べてみると、blkidPARTLABELなしでvdb1をリストしていることに気づきました。

~# blkid
/dev/sr0: LABEL="config-2" TYPE="iso9660" 
/dev/vda1: LABEL="cloudimg-rootfs" UUID="56ea71ab-5e1b-43ce-a0fb-be31f6f224ac" TYPE="ext4" 
/dev/vdb1: UUID="6f446b13-e62a-42c5-953b-68298ab93dbd" TYPE="ext4"

udevを再起動しようとしましたが、役に立ちませんでした。

~# service udev restart
udev stop/waiting
udev start/running, process 12959
~# blkid
/dev/sr0: LABEL="config-2" TYPE="iso9660" 
/dev/vda1: LABEL="cloudimg-rootfs" UUID="56ea71ab-5e1b-43ce-a0fb-be31f6f224ac" TYPE="ext4" 
/dev/vdb1: UUID="6f446b13-e62a-42c5-953b-68298ab93dbd" TYPE="ext4"

そのラベルがPARTLABELのディスクと一緒にblkid値として表示されていないのに、なぜ適切なシンボリックリンクが/dev/disk/by-partlabelの下に表示されるのでしょうか。

ありがとう!

1

PARTLABEL=TESTが機能しない理由と、ラベルがblkidに表示されない理由はわかりませんが、/dev/disk/by-partlabelシンボリックリンクを介してマウントすることでこれを回避しました。 :

$ cat /etc/fstab
LABEL=cloudimg-rootfs   /    ext4   defaults    0 0
/dev/disk/by-partlabel/TEST /opt/ops/backup ext4 defaults 0 0

構成管理でパーティションラベルを操作しているときに、今のところこれを使用することにしましたが、blkidがディスクのPARTLABELを表示しない理由を知りたいと思っています。

1

ファイルシステムラベルを試してください。私にとって、これはいくつかのシステムでうまく機能します。

Filesystem-tools(e2label、mkfs、ntfslabelなど)を使用するか、gpartedを使用して、フォーマット後またはフォーマット中にパーティションにラベルを付けます。

私のfstabは次のようになります:

# <file system>   <mount point>   <type> <options>         <dump>  <pass>
LABEL=KUBUNTU     /               ext4    discard,relatime,errors=remount-ro      0       1
LABEL=UEFI        /media/UEFI     vfat    discard,relatime,noauto                 0       0
LABEL=SWAP        none            swap    sw                                      0       0
LABEL=DATA        /media/DATA     ext4    defaults                                0       2
0
JPT