「fdisk -l」がドライブパーティションテーブルをリストし、各パーティションのパーティションID /タイプを表示する方法を知っていますか?
LVM論理ボリュームのパーティションIDを取得する同様の方法はありますか?
編集:私はほとんどが探しているものである「lvs」を知っています(それは私に「fdisk -l」のような論理ボリュームのリストを提供します...それが何を知るのにも役立つことを除いて...論理ボリュームのパーティションタイプ( "仮想パーティション"と見なしたい)は次のとおりです。その情報は、右側の最後の2列に "fdisk -l"と表示されます(物理ディスクの場合は "8e"など) LVMパーティション、またはLinux extの場合は「83」など)。
私が探しているツールはLVMの一部ではない可能性があります。パーティションを指定して、パーティションのID /タイプを出力できる他のユーティリティだけでしょうか?
Linux LVMのパーティションIDは8eであり、fdiskによって報告されます。
$ Sudo fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00008ec7
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1013 8136891 8e Linux LVM
/dev/sda2 1014 1044 249007+ 5 Extended
/dev/sda5 1014 1044 248976 83 Linux
LVMは、ストレージデバイスの上位にある抽象化レイヤーであり、管理を容易にします。 LVMのパーティションIDが表示されるため、fdiskが提供する情報以外にどのような情報が必要かはわかりません。ただし、LVM論理ボリュームに関する追加情報については、「lvscan」、「lvs」、および「lvdisplay」を使用できます。
$ Sudo lvscan
ACTIVE '/dev/ops1test/root' [7.35 GB] inherit
ACTIVE '/dev/ops1test/swap_1' [388.00 MB] inherit
$ Sudo lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
root ops1test -wi-ao 7.35G
swap_1 ops1test -wi-ao 388.00M
$ Sudo lvdisplay
--- Logical volume ---
LV Name /dev/ops1test/root
VG Name ops1test
LV UUID BfKOpy-L7Ql-905o-7tFk-nnsV-0c7I-w4g9y6
LV Write Access read/write
LV Status available
# open 1
LV Size 7.35 GB
Current LE 1881
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Name /dev/ops1test/swap_1
VG Name ops1test
LV UUID 8SNfQ9-Hlfk-Edsb-vmL1-DeE3-nBRR-YAM1dV
LV Write Access read/write
LV Status available
# open 2
LV Size 388.00 MB
Current LE 97
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
同様に、「vgscan」、「vgs」、「vgdisplay」を使用して、ボリュームグループ自体に関する情報を確認できます。
$ Sudo vgscan
Reading all physical volumes. This may take a while...
Found volume group "ops1test" using metadata type lvm2
$ Sudo vgs
VG #PV #LV #SN Attr VSize VFree
ops1test 1 2 0 wz--n- 7.76G 32.00M
$ Sudo vgdisplay
--- Volume group ---
VG Name ops1test
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 7.76 GB
PE Size 4.00 MB
Total PE 1986
Alloc PE / Size 1978 / 7.73 GB
Free PE / Size 8 / 32.00 MB
VG UUID ofpvks-2EDZ-limu-0wAh-tYUN-ISG3-mSS65O
論理ボリュームには、古いDOSパーティションのような「タイプ」はありません。 Unixファイルのように、それらが何であるかを知るためにそれらを読む必要があります。このような何かがうまくいくはずです:
lvs --all --noheadings | while read lv vg rest; do file --dereference --special-files "/dev/mapper/$(echo $vg | sed 's/-/--/')-$lv"; done
このコマンドの出力例を次に示します(少し切り捨てています)。
[...]
/dev/mapper/VolGroup00-LogVol00: Linux rev 1.0 ext4 filesystem data, UUID=b000000e-00f0-0cde-b000-fa0d000ddc00 (extents) (64bit) (large files) (huge files)
[...]
LVMは物理ディスクを抽象化したものです。
論理ボリューム(ファイルをフォーマットして配置できる)は、1つ以上の物理エクステント(実際の物理ディスクパーティション)で構成されるボリュームグループから割り当てられます。
あなたの質問は少し不明確です。論理ボリュームが物理的に常駐しているディスクパーティションを表示するには、lvdisplay --mapsが役立ちます。
#lvdisplay --maps ---論理ボリューム--- LV名/dev/VolGroup00/root VG名VolGroup00 LV UUID xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx LV Write Access read/write LV Status available #open 1 LV Size 5.00 GB 現在のLE 160 セグメント1 割り当て継承 先読みセクター自動 -現在256に設定 ブロックデバイス253: 0 ---セグメント--- 論理エクステント0〜159: タイプリニア 物理ボリューム/dev/sda2 物理エクステント0〜159
論理ボリュームには「タイプ」の概念はなく、単にブロックデバイスです。ブロックデバイスの内容を調べて、その中にあるものを判別したい場合は、blkid
ツールを調べて、それを正確に行うことができます。
1)論理ボリュームは(物理的な)ディスクパーティションではありません。これは、Device Mapperを使用してLinuxカーネル内に作成された仮想ブロックデバイスです。これは、2つのディスクパーティションを使用して1つのブロックデバイスをセットアップしたり、1つのディスクパーティションを使用して2つのブロックデバイスをセットアップしたりするために使用できるテクノロジです。
# dmsetup targets
DMにアクセスしてください ホームページ にアクセスしてください。チェックしてください マニュアルページ 、RedHatにアクセスしてください マニュアル =またはたとえば this の記事です。これは素晴らしいテクノロジーだけです 言及 ウィキペディアで。
2)たとえば、自宅のコンピューターには、物理ディスクパーティションとDMデバイス(論理ボリューム))があります。
# cat /proc/partitions
メジャーマイナー#ブロック名
3 0 80043264 hda
3 1 204800 hda1
3 2 79831029 hda2
3 64 19589976 hdb
3 65 104391 hdb1
3 66 19478812 hdb2
253 0 17432576 dm-0
253 1 2031616 dm-1
253 2 77762560 dm-2
253 3 2064384 dm-3
主にタイプやIDはありません。開始セクター番号と長さだけで定義されます。
# dmsetup status -j 253 -m 0
0 34865152 linear
したがって、dm-0は、いくつかの物理デバイスの34865152セクターで構成されるフラグメントです。
# dmsetup deps -j 253 -m 0
1 dependencies : (3, 66)
そして、このデバイスは/ dev/hdb2パーティションです!
# fdisk /dev/hdb
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/hdb1 * 1 13 104391 83 Linux
/dev/hdb2 14 2438 19478812+ 8e Linux LVM
そして、それはtimbermanによって言及されたLVM(8e)タイプのパーティションです。
# pvs
PV VG Fmt Attr PSize PFree
/dev/hda2 VolGroup lvm2 a- 76,13G 0
/dev/hdb2 VolGroup00 lvm2 a- 18,56G 0
この単一の(物理)ディスクパーティションは、グループ内の論理ボリュームを保持できます。ディスクが2つあるので、そのようなグループが2つあり、各グループには2つの論理デバイスがあります。
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv_root VolGroup -wi-a- 74,16G
lv_swap VolGroup -wi-a- 1,97G
LogVol00 VolGroup00 -wi-ao 16,62G
LogVol01 VolGroup00 -wi-ao 1,94G
したがって、dm-0とdm-1は、(CentOSを使用した)最初のディスクの/ dev/hdb2パーティションに作成された2つのLV(lvrootとlvswap)ですが、dm-2とdm-3は、/ dev/hda2パーティションに作成されたLVです。 2つ目のディスク(Fedoraを使用)。
論理デバイスはラベル(UUID)を持つことができます。上記のlvdisplayコマンドで確認できます。ただし、これらは単なるラベルであり、メジャー番号、マイナー番号(-j -mスイッチ)の代わりに(-u)を使用できます。
Lsblkは必要な情報を提供しますか?
[root@localhost ~]# lsblk -o TYPE,NAME,KNAME,UUID,MOUNTPOINT,SIZE
TYPE NAME KNAME UUID MOUNTPOINT SIZE
rom sr0 sr0 2014-07-04-15-59-23-00 362M
disk vda vda 1G
part └─vda1 vda1 7eadd712-6571-4722-8a5e-5d419176f6dc /boot 1023M
disk vdb vdb eVbl9d-dxf0-yqiV-evZC-FHPB-RrZb-eb1897 20G
lvm ├─vg_system-lv_swap dm-0 44bb22f8-d8c6-482c-8763-36ee58c2528e [SWAP] 1G
lvm ├─vg_system-lv_usr dm-1 c1f9ac62-17a3-4dfa-88b6-6a26394dd270 /usr 2G
lvm ├─vg_system-lv_root dm-2 6724461a-2401-42ec-8180-fb7582040b68 / 10G
lvm ├─vg_system-lv_var dm-3 f2044fb7-5a64-4ae3-8407-891f75aba534 /var 2G
lvm └─vg_system-lv_home dm-4 8ad80cce-bdf4-43e9-b755-b987169ed062 /home 2G
[root@localhost ~]#
論理ボリュームには、パーティションIDまたはタイプはありません。それらは、複数の物理ボリューム(PV)に広がる可能性がある物理エクステント(PE)で構成され、それぞれがパーティション(例:/ dev/sda2)または完全なディスク(例:/ dev/sdb)。
おそらく必要ないでしょうが、私はここで少し自分自身を学びました http://www.linuxconfig.org/Linux_lvm_-_Logical_Volume_Manager
パーティションタイプIDは、パーティション自体ではなく、パーティションテーブルにのみ保存されます。一方、LVM論理ボリュームは通常、ディスクではなく個々のパーティションのように扱われるため、パーティションテーブルがないため、検索するパーティションタイプIDはありません。
タイプIDはLinuxでの情報提供のみを目的としていることにも注意してください(ただし、これはWindowsには当てはまりません)。そのパーティションの内容とファイルシステムには関係ありません。
「Mark V」の以前の投稿を見ると、lsblkコマンドが使用されたことがわかります。
これは素晴らしいオプションですが、OPはほとんどの回答から省略されたタイプを要求しました。上記のlsblkを使用して「FSTYPE」を追加すると、期待されるタイプが得られます。
# lsblk -o TYPE,NAME,KNAME,UUID,MOUNTPOINT,SIZE,FSTYPE
TYPE NAME KNAME UUID MOUNTPOINT SIZE FSTYPE
disk fd0 fd0 4K
disk sda sda 100G
part ├─sda1 sda1 a6f1731f-e2bf-4dae-a443-269b079388a6 /boot 1G xfs
part ├─sda2 sda2 6CCtv5-HHYq-aXDm-m4jj-IpD3-rfv7-AI57D9 49G
LVM2_member
lvm │ ├─cl_hadron-root dm-0 0c8bfb8b-ec32-4152-9abd-b6bc5c475b00 / 97G xfs
lvm │ └─cl_hadron-swap dm-1 8aeeadab-69da-49ff-991d-dad8857fb82b [SWAP] 2G
swap
#
この1行のコマンドが役立つと思います。
for i in $(df -h | grep mapper | cut -d" " -f1); do echo $i; lvdisplay --maps $i | grep "Physical volume"; done
出力は次のようになります。
/dev/mapper/myserver-root
Physical volume /dev/sda5
/dev/mapper/SambaShares
Physical volume /dev/sdb1
Physical volume /dev/sdo1
Physical volume /dev/sdp
/dev/mapper/Test--Disc
Physical volume /dev/sdf1
Physical volume /dev/sdg1
Physical volume /dev/sdh1
Physical volume /dev/sdi1
/dev/mapper/Clonezilla-partimag
Physical volume /dev/sdk1
Physical volume /dev/sdj1
Physical volume /dev/sdl1
Physical volume /dev/sdm1
Physical volume /dev/sdn1
Physical volume /dev/sdq1