GPT 또는 MBR : 어떻게 알 수 있습니까?


답변:


87

parted -l파티션 테이블 유형을 결정하는 데 사용할 수 있습니다 . 예 :

$ 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 Table필드는 msdos두 디스크 모두 에서 MBR 파티션 테이블 (Linux 및 Windows에서 여전히 일반적으로 사용되는 테이블)을 사용하고 있음을 보여줍니다 . 이 man페이지 parted에서 다음과 같은 유형의 파티션 테이블 (또는보다 넓은`디스크 레이블 ')을 만들 수 있습니다.

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

최신 정보

단일 파티션을 나열하는 명령을 추가하는 것은 가치가 없으며 parted, 드라이브가 여러 개인 경우 필요한 데이터를 찾는 데 어려움이있을 수 있습니다. 들어 /dev/sda당신이 할 것입니다 :

parted /dev/sda print

Graeme, 그것은 훌륭한 명령입니다. 몇 년 동안 Linux를 사용해 왔지만 실제로는 눈치 채지 못했습니다. 감사!
— Tim

3
parted /dev/sda p또한 할 것입니다.
— sjas

"sudo parted -l"을 수행해야했습니다
— Santropedro

33

Linux에서는 gdisk모든 배포판에서 사용할 수 있는 도구를 통해이를 확인할 수 있습니다.

gdisk -l /dev/sda

여기서, /dev/sda디바이스 노드 물리적 드라이브 아니라 파티션 ( /dev/sda1, /dev/sda2, 파티션 등이다).

다음과 같은 내용이 포함 된 경우 :

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

MBR 스타일 디스크가 있습니다. 걱정하지 마십시오. 해를 끼치 지 않았습니다.

이 경고가 표시되지 않으면 GPT 디스크 또는 하이브리드 GPT / MBR 디스크가있는 것입니다. 이후 버전은 대부분 GPT를 지원하지 않는 MS Windows의 이중 부팅 버전을위한 Apple 컴퓨터에서 주로 사용됩니다. gdisk이것을 다음과 같이 표시합니다 :

Found valid GPT with hybrid MBR; using GPT

두 스타일을 모두 지원해야하는 다른 상황에서도 사용할 수 있습니다.


또는 반대로 cfdiskGPT 파티션 에서 사용하려고 하면 경고가 발생합니다.
— 오리온

gdisk패키지 에 설치되어 있지 않은 패키지라면 gptfdisk적어도 젠투에서 찾을 수 있습니다 .

2
@ orion GPT를 지원 fdisk하거나 cfdisk지원하는 일부 버전의 도구 로 오류가 표시 되지 않는 것이 좋습니다 .
— goldilocks

나를 gdisk위해 하이브리드 GPT + MBR 파티션 테이블을 감지하고 제공합니다 Found valid GPT with hybrid MBR; using GPT.. 이것은 하이브리드 테이블을 감지하는 유일한 방법 인 것 같습니다.
— Graeme

@Graeme : 감사합니다. 나는 이것들을 몰랐다 (원래 하이브리드 참조는 Stephane Chazelas에 의해 편집되었다), 나는 약간의 독서를하고 세부 사항을 추가했다.
— goldilocks

17

OS가 지정되지 않았으므로 여기에 FreeBSD 방식이 있습니다.

모든 것은 gpart명령을 통해 수행됩니다 (GEOM 파티 셔 너의 약자-GNU와 관련이 없음).

간단한 gpart show것은 모든 디스크에서 사용 가능한 모든 파티션을 보여 주지만 장치를보다 정확하게 볼 수 있도록 지정할 수 있습니다.

  • MBR (일명 "msdos") 및 BSD 파티션 구성을 사용한 레거시 파티션 레이아웃 ( 전체 디스크를 사용하지 않는 한 일반적으로 BSD 시스템에는 2 단계 파티션이 필요했습니다) :

    $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를 사용하는 최신 파티션 레이아웃 :

    $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)
    

자세한 내용은 gpart매뉴얼에 있습니다 .


9

와 udisks리눅스 :

$ 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

위의 하이브리드 GPT + MS-DOS 파티션 드라이브가 있습니다. 이 경우 Linux 커널은 MS-DOS 분할을 무시하므로 udisksUDISKS_PARTITION_TABLE_SCHEME를 gpt로 설정합니다.

해당 udisks-part-id 도구는 udev 데이터베이스를 채우는 데 사용됩니다. 따라서 udisks설치 한 경우 다음을 사용하여 권한이없는 사용자 일지라도 해당 정보를 쿼리 할 수 ​​있어야합니다.

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

2
하이브리드 GPT + MBR의 유무에 관계없이 유사한 출력을 얻을 수 있습니다. GPT에는 단일 전체 디스크 파티션 유형의 가짜 MBR이 필요합니다 0xee. 하이브리드에서는 0xee파티션 이 하나 인 일반 MBR입니다 (MBR 데이터가 GPT 데이터와 동기화되지 않으면 주요 문제가 발생할 수 있음).
— Graeme

6

사용하다

$ 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

디스크 레이블 유형 dos를 참조하십시오 . 그것이 dos를 표시하면 MBR 스키마임을 의미하고 그렇지 않으면 GPT 스키마



1

사용할 수 있습니다 blkid.

출력 예제 :

# 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

또는 스크립트에서 다음 -o value옵션을 사용하십시오.

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.