파일 시스템 서명 문제가 있는 fdisk 스크립트 작성

파일 시스템 서명 문제가 있는 fdisk 스크립트 작성

Bash 스크립트를 사용하여 fdisk를 자동화하려고 합니다. 내 스크립트에는 다음 코드 블록이 있습니다.

echo "Creating root filesystem partition..."
(
   echo n
   echo 3 
   echo
   echo
   echo w
) | fdisk ${DEVICE}

그 중에는 DEVICE물리적 디스크 /dev/sda /dev/nvme0n1등이 있지만 파티션은 없습니다. 그러나 디스크가 이전에 암호화된 파일 시스템을 생성한 경우 fdisk서명을 제거하라는 간단한 메시지가 표시됩니다. 블록에 한 줄만 추가하면 되지만 서명이 없는 디스크에서는 문제가 발생합니다.crypto_LUKSYes/Noecho Ycrypto_LUKS

블록을 호출하기 전에 wipefs --all --force ${DEVICE}호출 을 시도했지만 서명 wipefs --all --force ${DEVICE}[1-9]*이 아닌 일부 일반 파일 시스템과 파티션 테이블만 삭제합니다 LUKS.

답변1

지금까지 stdin/out에서 fdisk 옵션을 에코하는 것은 매우 하드 코딩된 접근 방식인 것으로 보이며 @phuclv가 제안한 대로 sgdisk를 사용하는 것은 파티셔닝을 자동화하는 매우 일반적인 방법입니다.

예를 들어, 기본 게시물의 다음 줄을 sgdisk 기반 줄로 변경했는데 매우 잘 작동했습니다.

# Create a GPT on the disk:
sgdisk -o ${DEVICE}

# Create the EFI partition:
sgdisk -n 1:0:+512M ${DEVICE}

# Create the /boot partition:
sgdisk -n 2:0:+$512M ${DEVICE}

# Create the / partition:
sgdisk -n 3:0:0 ${DEVICE}

세 개의 숫자 집합에서 첫 번째 숫자는 원하는 파티션 번호를 나타내고, 두 번째 숫자는 첫 번째 섹터 번호를 나타내며(사용 가능한 첫 번째 섹터를 원할 경우 0 입력), 마지막 숫자는 파티션을 나타냅니다(고정 위치 또는 나처럼 첫 번째 섹터를 크기 단위로 배치하려면 상대 위치를 사용하고, 사용 가능한 최신 섹터가 있는 파티션을 사용하려면 0으로 설정하세요.

sgdisk가 LUKS 서명을 제거하는 데 어떻게 도움이 되는지 묻는다면 sgdisk가 fdisk의 CLI 프롬프트처럼 요청하는 대신 이러한 서명을 강제로 제거한다고 말할 수 있습니다.

관련 정보