답변:
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
parted /dev/sda p
또한 할 것입니다.
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
두 스타일을 모두 지원해야하는 다른 상황에서도 사용할 수 있습니다.
cfdisk
GPT 파티션 에서 사용하려고 하면 경고가 발생합니다.
fdisk
하거나 cfdisk
지원하는 일부 버전의 도구 로 오류가 표시 되지 않는 것이 좋습니다 .
gdisk
위해 하이브리드 GPT + MBR 파티션 테이블을 감지하고 제공합니다 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 분할을 무시하므로 udisks
UDISKS_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
0xee
. 하이브리드에서는 0xee
파티션 이 하나 인 일반 MBR입니다 (MBR 데이터가 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 }'
}
fdisk -l /dev/sda | grep -i disklabel
아무것도 반환하지 않습니다 ( GNU Fdisk 1.3.0a ).
사용할 수 있습니다 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