GPT veya MBR: Nasıl bilebilirim?


Yanıtlar:


87

parted -lBölüm tablosunun türünü belirlemek için kullanabilirsiniz . Örneğin:

$ sudo parted -l
Model: ATA TOSHIBA THNSNS25 (scsi)
Disk /dev/sda: 256GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  32.2GB  32.2GB  primary  ext4         boot
 2      32.2GB  256GB   224GB   primary  ext4


Model: ATA Hitachi HDT72101 (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  32.2GB  32.2GB  primary  ext4            boot
 2      32.2GB  996GB   964GB   primary  ext4
 3      996GB   1000GB  4295MB  primary  linux-swap(v1)

Partition TableAlan bir kullanıyorum gösterir msdoshem disklerdeki MBR bölüm tablosu (hala yaygın Linux ve Windows için kullanılan bir). Gönderen mansayfa partedbölümleme tablosu aşağıdaki türden (ya da daha geniş olarak `Disk etiketi ') oluşturmak (ve dolayısıyla umarım tespit) olabilir:

bsd
dvh
gpt    - this is a GPT partition table
loop   - this is raw disk access without a partition table
mac
msdos  - this is a standard MBR partition table
pc98
sun

Güncelleme

Tek bir bölüm listeleme komutunu eklemeye değer, çünkü bu durum hakkında hiçbir bilgi olmadan açık değildir partedve birden fazla sürücü varsa ihtiyacınız olan verileri bulmak acı verici olabilir. İçin /dev/sdayapardın:

parted /dev/sda print

Bu harika bir emir, Graeme. Linux'u birkaç yıldır kullanmama rağmen, bunu hiç farketmemiştim. Teşekkürler!
Tim

3
parted /dev/sda pde yapacak.
sjas

"sudo parted -l" yapmak zorunda kaldım
Santropedro

33

Linux'ta bunu gdiskherhangi bir dağıtım için uygun olması gereken araçla kontrol edebilirsiniz .

gdisk -l /dev/sda

Burada, /dev/sdacihaz düğüm fiziksel sürücünün değil, bir bölme ( /dev/sda1, /dev/sda2vb bölümleri vardır).

İçerdiği bir şey görürseniz:

***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. 
***************************************************************

MBR stilinde bir diskiniz var. Endişelenme, bu herhangi bir zarar vermedi.

Bu uyarıyı görmüyorsanız, bir GPT diskiniz veya hibrit bir GPT / MBR diskiniz vardır. Daha sonraları çoğunlukla, GPT'yi desteklemeyen MS Windows'un çift önyükleme sürümlerine yönelik Apple makinelerinde kullanılır. gdiskile şunu gösterecektir:

Found valid GPT with hybrid MBR; using GPT

Her iki stil için de desteğin gerekli olduğu başka durumlarda da kullanılabilirler.


Veya cfdiskGPT bölümünde tersini kullanmaya çalışmak da bir uyarı ile sonuçlanacaktır.
orion

Takılı değilse ve bir gdiskpakette yoksa, pakette bulunabilir gptfdisk... en azından Gentoo'da.

2
@ orion GPT gibi araçların bazı sürümlerinin GPT'yi desteklediğini fdiskveya cfdiskdestekleyebileceğini ve bu nedenle bir hata göstermediğini önermem .
goldilocks

Benim için gdiskbir hibrit GPT + MBR bölümleme tablosu tespit eder ve verir Found valid GPT with hybrid MBR; using GPT.. Bu melez bir tablo tespit edecek tek yöntem gibi görünüyor.
Graeme

@Graeme: Teşekkürler. Bunların farkında değildim (orijinal melez referans Stephane Chazelas tarafından düzenlendi), fakat biraz okuma yaptım ve bazı detaylar ekledim.
goldilocks

17

İşletim sistemi belirtilmediği için, FreeBSD'nin işleri yapmanın bir yolu var.

Her şey gpartkomut aracılığıyla yapılır (GEOM ayrıştırıcısına kısa - GNU ile ilgisi yok).

Bir basit gpart showsize tüm disklerin mevcut tüm bölümlerini gösterir, ancak bir tane daha kesin bir görünüm için cihazı belirleyebilirsiniz:

  • MBR (aka "msdos") ve BSD bölüm şemaları ile eski bölüm düzeni ( tam diski kullanmadıkça BSD sistemleri için genellikle 2 seviyeli bir bölümlendirme gerekliydi):

    $gpart show

    =>      63  67108801  ada0  MBR  (32G)
            63  67108545     1  freebsd  [active]  (32G)
      67108608       256        - free -  (128k)
    
    =>       0  67108545  ada0s1  BSD  (32G)
             0   2097152       2  freebsd-swap  (1.0G)
       2097152  65011393       1  freebsd-ufs  (31G)
    
  • GPT kullanarak modern bölüm düzeni :

    $gpart show /dev/ada2

    =>       34  976773101  ada2  GPT  (465G)
             34          6        - free -  (3.0k)
             40        128     1  freebsd-boot  (64k)
            168   67108864     2  freebsd-swap  (32G)
       67109032  901775360     3  freebsd-zfs  (430G)
    

Daha fazla bilgi için, hepsi gpartkılavuzda .


9

udisksLinux ile birlikte :

$ sudo /lib/udev/udisks-part-id /dev/sda
using device_file=/dev/sda syspath=/sys/devices/pci0000:00/0000:00:0b.0/ata1/host0/target0:0:0/0:0:0:0/block/sda, offset=0 ao=0 and number=0 for /dev/sda
Entering MS-DOS parser (offset=0, size=500107862016)
MSDOS_MAGIC found
found partition type 0xee => protective MBR for GPT
Exiting MS-DOS parser
Entering EFI GPT parser
GPT magic found
partition_entry_lba=2
num_entries=128
size_of_entry=128
Leaving EFI GPT parser
EFI GPT partition table detected
UDISKS_PARTITION_TABLE=1
UDISKS_PARTITION_TABLE_SCHEME=gpt
UDISKS_PARTITION_TABLE_COUNT=4

Yukarıda, hibrit GPT + MS-DOS bölümlemeli bir sürücü var. Bu durumda, Linux çekirdeği MS-DOS bölümlemesini yok sayar, bu yüzden udisksUDISKS_PARTITION_TABLE_SCHEME öğesini gpt olarak ayarlar.

Bu udisks-part-id aracı, udev veritabanını doldurmak için kullanılır. Bu nedenle, udisksyüklediyseniz, ayrıcalıklı olmayan bir kullanıcı olarak bile bu bilgileri sorgulayabilmeniz gerekir:

$ udevadm info -q property -n sda | grep UDISKS_PARTITION_TABLE_SCHEME
UDISKS_PARTITION_TABLE_SCHEME=gpt

2
Hibrit bir GPT + MBR olup olmadığına bakılmaksızın benzer bir çıktı alacağınızı unutmayın. GPT, türünde tek bir tam disk bölümü içeren sahte bir MBR gerektirir 0xee. Bir hibritte bu, tek bir 0xeebölüme sahip normal bir MBR'dir (ve MBR verileri GPT verileriyle senkronize edilmezse büyük sorunların ortaya çıkması olasıdır).
Graeme

6

kullanım

$ sudo fdisk -l 

Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x987c1a05


Device     Boot   Start       End   Sectors   Size Id Type
/dev/sda1  *       2048    999423    997376   487M 83 Linux
/dev/sda2       1001470 250068991 249067522 118.8G  5 Extended
/dev/sda5       1001472 250068991 249067520 118.8G 8e Linux LVM

Disklabel tipine bakınız : dos . Eğer dos gösteriyorsa, bunun MBR şeması olduğunu gösterir. GPT şemasıdır.


3

Benim içinde Alp Linux Bölme komut kullandığım:

check_scheme() {
    fdisk -l $1 |grep "Disklabel type:" |awk '{ print $3 }'
}

Benim üzerinde Ubuntu 18.04 sistem fdisk -l /dev/sda | grep -i disklabeldöner şey, ( GNU Fdisk 1.3.0a ).
agc

1

Kullanabilirsiniz blkid.

Çıktı ile örnekler:

# blkid /dev/sdc
/dev/sdc: PTUUID="92f03b9b-7402-4ad2-8316-08a991c237b3" PTTYPE="gpt"

# blkid -o export /dev/sdc
DEVNAME=/dev/sdc
PTUUID=92f03b9b-7402-4ad2-8316-08a991c237b3
PTTYPE=gpt

Veya bir komut dosyasında, -o valueseçenekle:

disk=$1
part_type=$(blkid -o value -s PTTYPE $disk)
case $part_type in
    gpt)  echo "GPT";;
    dos)  echo "MBR";;
    *)    echo "partition is $part_type";;
esac
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.