GPT 또는 MBR : 어떻게 알 수 있습니까? 형식으로 배치되어 있는지 어떻게 알

하드 드라이브가 MBR 또는 GPT 형식으로 배치되어 있는지 어떻게 알 수 있습니까?



답변

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


답변

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

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


답변

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매뉴얼에 있습니다 .


답변

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


답변

사용하다

$ 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 스키마


답변

내에서 알파인 리눅스 파티션 스크립트 내가 사용 :

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


답변

사용할 수 있습니다 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