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.