私はUSBを使用してパーティションがどこから始まるのかを見つけようとしています
lsblk -o name,label,partuuid
次の出力が得られます。
lsblk: unknown column: partuuid
「partuuid」はUbuntuで許可されたコマンドではないと思います。この情報を見つける方法についてのアイデアはありますか?
UUIDを見つける方法は、最初に起動したいUSBのパーティションを特定することでした。
lsblk
開発ツリーが提供されたため、SDB1、SDB2、およびSDB3の概要を説明しました。これはルートファイルシステムであるため、SDB2から起動したいと思っていました。
/ dev/sdbを変数として渡す小さなスクリプトを作成しました。
#!/bin/sh
Sudo dd if=/dev/$1 bs=4 skip=110 count=1 | hexdump
PARTUUIDを間違ったエンディアン形式で提供してくれたので、交換しました。したがって、SDB2のUUIDはxxxxxxxx-02です。
目標が「partuuid」(実際にはGUID)を介してパーティションを識別することである場合、GPT fdisk(gdisk
、sgdisk
、またはcgdisk
)を介してパーティション固有のGUIDを取得できます。スクリプトまたは1行のコマンドで必要な場合は、sgdisk
が最適です。あなたは次のようなことをするでしょう:
$ Sudo sgdisk -i 2 /dev/sda | grep unique
Partition unique GUID: 4D72D277-2E94-4760-8B38-8A487615E2E3
この例では、パーティションの一意のGUID( "partuuid")をパーティション2(-i 2
上の/dev/sda
-つまり、/dev/sda2
から取得します。この例では、出力をパイプ処理します。 grep
は、単に関連する1行を分離するためのものです。この特定のsgdisk
コマンドは、パーティションに関するさまざまなタイプの情報を含む7行の出力を返します。
GUIDを既知の値に一致させるには、すべてのパーティションをループして、出力に対してさらに処理を行う必要があります。これは/dev/disk/by-partuuid/
のコンテンツを表示するようなものと比較すると厄介になる可能性がありますが、より広い目標に応じて、役立つか必要な場合があります。たとえば、partitions(ただしnotに含まれるファイルシステム)でさまざまなデータを収集しようとしている場合、sgdisk
は単なるパーティションのGUID-私が言ったように、-i
オプションからの7行の出力があります。
$ Sudo sgdisk -i 2 /dev/sda
Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux filesystem)
Partition unique GUID: 4D72D277-2E94-4760-8B38-8A487615E2E3
First sector: 1128448 (at 551.0 MiB)
Last sector: 2664447 (at 1.3 GiB)
Partition size: 1536000 sectors (750.0 MiB)
Attribute flags: 0000000000000000
Partition name: 'Unused /boot'
要約データをすべて表示する場合、またはその3行または4行だけを表示する場合は、他のソースからまとめようとするよりもsgdisk
を使用した方がよい場合があります。
OP質問の下のコメントによると、Ubuntu 14.04はPARTUUID
フラグをサポートしていません。
ご覧のとおり、PARTUUID
はUbuntu 16.04で正常に動作し、USBサムドライブ/フラッシュドライブのUUIDを表示します。
$ lsblk -o NAME,FSTYPE,LABEL,PARTUUID,MOUNTPOINT,SIZE,MODEL
NAME FSTYPE LABEL PARTUUID MOUNTPOINT SIZE MODEL
sdb 7.6G USB Flash Disk
└─sdb1 vfat LIVE_USB bb958812-01 /media/ric 7.6G
sda 931.5G HGST HTS721010A9
├─sda4 ntfs WINRETOOLS c8cd5c7e-48fc-4aac-8c57-abcf6819b3ce 450M
├─sda2 0e4d96d3-5164-4d2f-9786-5e7b5066034e 128M
├─sda5 ntfs Image b929ccc6-7ceb-4c50-a14c-8e41bf9d401f 11.4G
├─sda3 ntfs HGST_Win10 8778bdd3-e557-4f16-8fd6-9d44dcfe0c0a /mnt/d 919G
└─sda1 vfat ESP edde67a5-6d32-425b-8e4e-6343b3e3f6f1 500M
nvme0n1 477G Samsung SSD 960 PRO
├─nvme0n1p5 ext4 NVMe_Ubuntu_16.0 f1f35cf5-1b79-4d43-84e3-9b10ea3f9e3c / 44.6G
├─nvme0n1p3 6471dce0-3ba5-49b9-bd13-667ad8f72b10 16M
├─nvme0n1p1 ntfs f5872f63-c0c7-4136-b65d-b89becdfc138 450M
├─nvme0n1p6 swap Linux Swap 4aeb7d53-7ad5-41b2-99f3-cae583bca6b7 [SWAP] 7.9G
├─nvme0n1p4 ntfs NVMe_Win10 f354f364-9819-4209-955a-297505eebfd0 /mnt/c 414.9G
├─nvme0n1p2 vfat 5a989e57-3bb3-4821-907f-5822bb14a635 /boot/efi 99M
└─nvme0n1p7 ntfs Shared_WSL+Linux 1ca41115-5e65-4ade-8825-b9a2807ae51c /mnt/e 9G
マニュアルページから(ターミナルタイプman lsblk
):
-o、--output listどの出力列を印刷するかを指定します。 --helpを使用して、サポートされているすべての列のリストを取得します。
したがって、lsblk --help
は、とりわけ、サポートされているコラムのリストを提供する必要があります。
パーティションuuidをリストするには、blkid
の代わりにlsblk
コマンドを使用します。
現在、Ubuntuマシンで確認するために来ていませんが、試してみてください。
UUID and PARTUUIDを表示するには、ls
を使用します。
ls -l /dev/disk/by-partuuid/
は、すべてのパーティションのpartuuidを表示します
ls -l /dev/disk/by-partuuid/
は、すべてのパーティションのuuidを表示します
UUIDの正しいラベルは単なるuuidなので、コマンドの「partuuid」を「uuid」に置き換えます。
lsblk -o name,label,uuid
UUIDを読み取るには、おそらくSudo
も必要になるでしょう。
しかし、実際にSBのパーティションがどこから始まるのかを調べようとしている場合おそらく、fdisk
、cfdisk
、parted
、またはおそらく最適なgparted
のような他の何かを使用したいでしょう。