web-dev-qa-db-ja.com

partxが一部のディスクのパーティションテーブルを読み取れない理由

partx このシステムの/dev/sdbのパーティションテーブルの読み取りに失敗しました。 null/emptyの代わりに、以下に示す「パーティションテーブルの読み取りに失敗しました」を返すのはなぜですか?この「失敗」の結果は、常にデバイスのパーティションテーブルが破損していることを意味しますか?

注:ここでは、sdbはパーティションなしでLVMとして正常に機能します!

    # pvs
      PV         VG                                        Fmt  Attr PSize    PFree  
      /dev/sda3  vgroot                                    lvm2 a--    89.00g   4.00m
      /dev/sda4  vgroot                                    lvm2 a--   746.78g 746.78g
      /dev/sdb   vgdata                                    lvm2 a--  <836.99g      0 

    # 
    # 
    # sfdisk -l /dev/sdb

    Disk /dev/sdb: 109262 cylinders, 255 heads, 63 sectors/track
    # 
    #
    # sfdisk -l /dev/sda

    Disk /dev/sda: 109262 cylinders, 255 heads, 63 sectors/track
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sda1          0+ 109262- 109263- 877647871+  ee  GPT
    sfdisk:                 start: (c,h,s) expected (0,0,2) found (0,0,1)

    /dev/sda2          0       -       0          0    0  Empty
    /dev/sda3          0       -       0          0    0  Empty
    /dev/sda4          0       -       0          0    0  Empty
    # 
    # 
    # partx -s /dev/sdb 
    partx: /dev/sdb: failed to read partition table
    # 
    # partx -s /dev/sda
    NR     START        END    SECTORS   SIZE NAME                 UUID
     1      2048     411647     409600   200M EFI System Partition 255f05dd-3c30-4eb5-b4ef-e222216eb27e
     2    411648    2508799    2097152     1G                      0eba1772-1106-4a63-bad6-6d20be988dba
     3   2508800  189171711  186662912    89G                      39fab8c9-bd96-47a2-b5db-495e43159055
     4 189171712 1755295710 1566123999 746.8G                      9e3d6237-5c7f-4443-8b60-b258052a8b32

    # 
    # 
    # pvdisplay /dev/sdb
      --- Physical volume ---
      PV Name               /dev/sdb
      VG Name               vgdata
      PV Size               836.99 GiB / not usable 2.00 MiB
      Allocatable           yes (but full)
      PE Size               4.00 MiB
      Total PE              214269
      Free PE               0
      Allocated PE          214269
      PV UUID               IsOr0G-UBTt-Qn1E-bx6R-dzvY-HqSE-bNiCaq

    # 
    # 
    # lsb_release -a
        LSB Version:    :core-4.1-AMD64:core-4.1-noarch
        Distributor ID: RedHatEnterpriseServer
        Description:    Red Hat Enterprise Linux Server release 7.4 (Maipo)
        Release:        7.4
        Codename:       Maipo
    # 
    # 

別のシステムシーン:

次のpartxは、パーティションなしでnull/emptyを直接出力できます。なぜですか?
注:次のsdbは、パーティションがなくてもLVMとして正常に機能します。

# 
# 
# partx  /dev/sdb
# 
# 
# 
# pvdisplay  /dev/sdb
  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               vgdoc
  PV Size               600.00 GB / not usable 4.00 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              153599
  Free PE               0
  Allocated PE          153599
  PV UUID               mMPvrE-NBP5-9n3J-77w5-57p0-1R7E-ggFCEj

# 
#  
# 
# lsb_release -a
LSB Version:    :core-3.1-AMD64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-AMD64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Release:        5.5
Codename:       Tikanga
# 
# 

1)私の考えでは、ディスクに実際にパーティションがない場合は、「読み取りに失敗しました...」でpartxを終了しないでください。
注:ご覧のとおり、partxは、非パーティションディスクを備えた別のシステムでのみnull/emptyを出力します。

2)PV/LVMを作成してディスクパーティションで使用できるのは正常ですよね?

 Device Boot Start     End   #cyls    #blocks   Id  System
   /dev/sda1   *      0+     25-     26-    204800   83  Linux
   /dev/sda2         25+  36404-  36380- 292215808   8e  Linux LVM
2
lylklb

partxにはパーティションテーブルが必要です。投稿された結果は、sdbにパーティションテーブルがないことを示しています。

これは、パーティションテーブルはあるがパーティションがないディスクとは異なります。その場合、そのディスクにLVMPVを置くことはできません。

の出力を比較します

  • blkid -o export /dev/sda
  • blkid -o export /dev/sda3
  • blkid -o export /dev/sdb

lsblkも役立つかもしれません。


sdbは、最初のセクターに競合する構造が含まれるため、LVMPVとパーティションテーブルとして同時にフォーマットすることはできません。両方に最初のセクターの構造が含まれることを確認するには、以下を比較します。

  • wipefs --no-act /dev/sda
  • wipefs --no-act /dev/sda3
  • wipefs --no-act /dev/sdb

wipefs --no-actの「オフセット」列はバイト単位です。

wipefsを実行する場合は注意が必要です。それはそれがどのように聞こえるかを行います。ただし、wipefs --no-actを実行すれば安全です。

1
sourcejedi