parted로 파티션 이름 지정을 방지하는 방법은 무엇입니까?

parted로 파티션 이름 지정을 방지하는 방법은 무엇입니까?

다음 명령을 실행하면:

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. ㅏ msdosdvh이름' 으로 지정해야 합니다 gpt. 어느 것도 아니다부품 유형...도 아니다이름sun" " 분할 테이블 과 함께 사용할 수 있습니다 .

parted를 사용하는 경우 GPT 파티션의 이름을 설정해야 합니다.

답변2

parted빈 문자열을 제공하면 파티션을 사용할 때 파티션 이름을 지정하지 않아도 됩니다.
동일한 참조를 사용하겠습니다.공식 문서:

명령: mkpart[파트 유형 이름 fs-type] 시작 끝
...
부품 유형primary" ", " " 또는 " " 중 하나이며 extended" " 또는 " " 파티션 테이블로만 지정할 수 있습니다 logical. ㅏ msdosdvh이름" " 파티션 테이블 에 대해 지정 되어야 합니다 gpt. 어느 것도 아니다부품 유형...도 아니다이름sun" " 분할 테이블 과 함께 사용할 수 있습니다 .

이제 분석해 보겠습니다(강조).

부품 유형primaryextended" ", " " 또는 " " 중 하나입니다 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

fdiskutil-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

관련 정보