다음 명령을 실행하면:
parted -s /dev/sda \
mklabel gpt \
mkpart primary 1MiB 261MiB \
set 1 esp on \
mkpart primary 261MiB 50GiB \
mkpart primary 50GiB 550GiB \
mkpart primary 550GiB 100%
mkfs.fat -F32 /dev/sda1
yes | mkfs.ext4 /dev/sda2
yes | mkfs.ext4 /dev/sda3
yes | mkfs.ext4 /dev/sda4
내가 얻은 primary
모든 파티션의 이름 은 다음과 같습니다.
Model: ATA ST2000LM003 HN-M (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 274MB 273MB fat32 primary boot, esp
2 274MB 53.7GB 53.4GB ext4 primary
3 53.7GB 591GB 537GB ext4 primary
4 591GB 2000GB 1410GB ext4 primary
이러한 이름을 원하지 않습니다. 자동 이름 지정을 방지하려면 어떻게 해야 합니까?
편집하다
해당 부분을 다음과 같이 변경 하면 mkpart
:
parted -s /dev/sda \
mklabel gpt \
mkpart 1MiB 261MiB \
set 1 esp on \
mkpart 261MiB 50GiB \
mkpart 50GiB 550GiB \
mkpart 550GiB 100%
스크립트를 실행하면 다음과 같은 결과가 나타납니다.
Error: Invalid number.
mkfs.fat 4.1 (2017-01-24)
mkfs.fat: unable to open /dev/sda1: No such file or directory
mke2fs 1.45.3 (14-Jul-2019)
The file /dev/sda2 does not exist and no size was specified.
mke2fs 1.45.3 (14-Jul-2019)
The file /dev/sda3 does not exist and no size was specified.
mke2fs 1.45.3 (14-Jul-2019)
The file /dev/sda4 does not exist and no size was specified.
편집하다
gparted
다음을 수행할 수 있습니다.
여기에서는 마지막 파티션에서 태그를 제거했지만 gparted
명령이 어떻게 수행되는지는 표시하지 않습니다!
답변1
~에서별도의 서류:
명령: mkpart[부분 유형 fs 유형 이름] 시작 끝
...
부품 유형primary
" ", " " 또는 " " 중 하나이며extended
" " 또는 " " 파티션 테이블로만 지정할 수 있습니다logical
. ㅏmsdos
dvh
이름' 으로 지정해야 합니다gpt
. 어느 것도 아니다부품 유형...도 아니다이름sun
" " 분할 테이블 과 함께 사용할 수 있습니다 .
parted를 사용하는 경우 GPT 파티션의 이름을 설정해야 합니다.
답변2
parted
빈 문자열을 제공하면 파티션을 사용할 때 파티션 이름을 지정하지 않아도 됩니다.
동일한 참조를 사용하겠습니다.공식 문서:
명령: mkpart[파트 유형 이름 fs-type] 시작 끝
...
부품 유형primary
" ", " " 또는 " " 중 하나이며extended
" " 또는 " " 파티션 테이블로만 지정할 수 있습니다logical
. ㅏmsdos
dvh
이름" " 파티션 테이블 에 대해 지정 되어야 합니다gpt
. 어느 것도 아니다부품 유형...도 아니다이름sun
" " 분할 테이블 과 함께 사용할 수 있습니다 .
이제 분석해 보겠습니다(강조).
부품 유형
primary
extended
" ", " " 또는 " " 중 하나입니다logical
.지정만 가능'msdos
' 또는 'dvh
' 파티션 테이블.
따라서 gpt
파티션을 나눈 테이블을 생성할 때당신은 사용하지 않습니다 part-type
(분명한 이유는 파티션 유형이 한 가지뿐이라는 것입니다.) 즉 gpt
, 디스크의 경우 명령은 다음과 같습니다.
mkpart [name fs-type] start end
이는 첫 번째 매개변수가 임을 의미합니다 mkpart
. name
참조로 돌아가 보겠습니다.
ㅏ이름 지정해야 합니다."
gpt
" 파티션 테이블의 경우.
즉, 첫 번째 매개변수는 필수이므로 mkpart
명령 뒤의 모든 문자열은 지정된 파티션 이름으로 해석됩니다. 이제 parted
대화형 모드에서 사용할 때 이름 없이 새 파티션을 어떻게 생성합니까? ""
다음과 같이 빈 문자열을 사용합니다 .
(parted) mkpart "" 0% 100%
스크립트 모드에서 명령을 실행할 때 이러한 따옴표가 쉘 확장(아무것도 아님)되는 것을 피해야 하며 문자 그대로 전달되어야 하므로 parted
이스케이프/인용해야 합니다.
parted -a optimal -s /dev/sda mklabel gpt mkpart '""' 0% 100%
즉, 특정 경우에는 다음을 사용하는 대신"기초적인"이는 파티션 이름으로 사용되며 빈 문자열을 사용할 수 있습니다.
parted -s /dev/sda \
mklabel gpt \
mkpart '""' 1MiB 261MiB \
set 1 esp on \
mkpart '""' 261MiB 50GiB \
mkpart '""' 50GiB 550GiB \
mkpart '""' 550GiB 100%
답변3
당신은 그것을 사용할 수 있습니다fdisk
fdisk
util-linux 2.31.1과 아마도 다른 최신 버전을 사용할 수 있습니다 .
X를 대상 드라이브의 실제 장치 문자로 바꿔야 하는 다음 스크립트 파일을 사용하여 테스트했습니다. 물론 올바른 파티션 수와 크기를 설정해야 합니다. 대화형으로 실행하여 사용할 구문을 배울 수 있습니다 fdisk
.
#!/bin/bash
LANG=C
echo "g
n
+256m
n
+1g
n
w" | fdisk /dev/sdX
설명하다
다음 목록은 작동하지 않지만(fdisk는 주석을 허용하지 않음) 위 스크립트를 이해하는 데 도움이 됩니다.
#!/bin/bash
LANG=C
echo "g # gpt, GUID partition table
n # new partition
# default partition number
# default start location
+256m # size
# default answer to partition name
n # new partition
# default partition number
# default start location
+1g # size
# default answer to partition name
n # new partition
# default partition number
# default start location
# default end location at the drive's tail end
# default answer to partition name
w # write to the drive" | fdisk /dev/sdX
인증에는 "이름"이 없습니다.
$ sudo partprobe;sleep 1;LANG=C sudo parted /dev/sdc p
Model: Kingston DataTraveler G3 (scsi)
Disk /dev/sdc: 4010MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 269MB 268MB
2 269MB 1343MB 1074MB
3 1343MB 4010MB 2667MB