parted 명령을 통해 각각의 새 디스크에서 2개의 파티션을 생성하려고 합니다.
예를 들어:
sdg 8:96 0 50G 0 disk
├─sdg1 8:97 0 25G 0 part
└─sdg2 8:98 0 25G 0 part
위의 예와 같이 디스크 크기는 50G이고 각 디스크마다 2개의 파티션을 생성하려고 합니다.
우리는 이것을 통해
parted --script /dev/sdg mklabel msdos
parted --script /dev/sdg mkpart primary 0% 50%
parted --script /dev/sdg mkpart primary 50% 100%
요청한 2개의 파티션을 생성하기 위한 위의 내용이 맞습니까? 같은 크기를 가지고
GB 단위로 값을 주는 게 아니라 0% 50%
와 로 값을 사용하고 있어서 이렇게 묻는 겁니다.100%
참고 - 기타 관련 링크 https://askubuntu.com/questions/507274/how-to-create-two-partitions-with-exactly-the-same-size
답변1
언제나 그렇듯, 컴퓨터에 있는 문서부터 시작해야 합니다 man parted
.
mkpart [part-type name fs-type] start end
새 파티션을 만듭니다. 및 파티션 테이블로만 지정할part-type
수 있으며 , 또는 중 하나msdos
여야 합니다 .dvh
파티션 테이블은 GPT에 필수이며 선택사항입니다. , , , , , , , , , , , , , , 또는 그 중 하나일 수 있습니다.primary
logical
extended
name
fs-type
fs-type
btrfs
ext2
ext3
ext4
fat16
fat32
hfs
hfs+
linux-swap
ntfs
reiserfs
udf
xfs
start
아무것도 없으므로 end
문서를 더 검색해야 합니다. 마침내 우리는 다음을 발견했습니다:
unit unit
위치와 크기를 표시할 때뿐만 아니라 명시적인 단위 접미사 없이 사용자가 지정한 단위를 해석할 때 사용할 단위를 설정합니다. (섹터), (바이트), (장치 크기의 백분율), (실린더), (실린더, 헤드, 섹터) 또는 (입력의 경우 메가바이트,unit
출력의 경우 친숙한 형식 중 하나인 인간의 형식)일 수 있습니다.s
B
kB
MB
MiB
GB
GiB
TB
TiB
%
cyl
chs
compact
unit
이는 실제로 사용되지 않도록 의도되었지만 mkpart
모든 측정에 사용 가능한 단위 유형을 정의하기도 합니다("명시적인 단위 접미사 없이 사용자가 제공한 콘텐츠 해석").
디스크 비율을 사용하여 파티션 크기를 결정합니다. 0% / 50% / 100%를 사용하여 동일한 크기의 파티션 두 개를 제공할 수 없으므로 정확한 크기로 지정하는 것이 좋습니다.
# Identify disk OR see the next step for a test scenario
dsk=/dev/sdg
# If you prefer, try with this loopback device
dd if=/dev/zero bs=1M count=1024 >/tmp/img
dsk=$(losetup --show --find /tmp/img)
# Create partition table on target disk/device
parted --script "$dsk" mklabel msdos
# MiB on the disk
mib=$(parted "$dsk" unit MiB print | awk '/^Disk/{print $NF+0; exit}')
printf "Size of %s is %d MiB\n" "$dsk" $mib
# Two identically sized partitions using the entire disk
psz=$((mib/2 -1))
printf "Partition size is %d MiB\n" $psz
parted "$dsk" unit MiB mkpart primary 1 $((1+psz))
parted "$dsk" unit MiB mkpart primary $((1+psz)) $((1+psz +psz))
# Show what we have (change "s" to "MiB" for better readability)
parted "$dsk" unit s print
그런데, 백분율 기반 할당을 사용한 결과는 다음과 같습니다. 보시다시피 파티션은거의크기는 동일하지만 정확하지는 않음:
dd if=/dev/zero bs=1M count=1024 >/tmp/img
dsk=$(losetup --show --find /tmp/img)
parted --script "$dsk" mklabel msdos
parted "$dsk" mkpart primary 0% 50% # Notice 0% isn't sector zero
parted "$dsk" mkpart primary 50% 100%
parted "$dsk" unit s print # Count by sectors
Model: Loopback device (loopback)
Disk /dev/loop0: 2097152s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 2048s 1048575s 1046528s primary
2 1048576s 2097151s 1048576s primary