사용자 프롬프트 없이 스크립트에서 parted mklabel을 실행하는 방법은 무엇입니까?

사용자 프롬프트 없이 스크립트에서 parted mklabel을 실행하는 방법은 무엇입니까?

parted 유틸리티를 사용하여 드라이브를 다시 분할하는 bash 스크립트를 작성하려고 합니다. 스크립트 내에서 실행되기 때문에 사용자에게 입력하라는 메시지를 표시하지 않는 것을 분리하고 싶습니다(또는 해당 메시지에 응답할 수 있는 방법이 있음).

처음에는 "-s" 또는 "--script" 옵션을 parted에 전달하려고 시도했지만 예상대로 작동하지 않았습니다. 스크립트를 실행하려고 하면 parted $DRIVE -s mklabel gptparted가 "i", "y", "i"(무시, 예, 무시)의 세 가지 프롬프트로 표시되는 경고에 응답할 것으로 예상합니다. 그러나 스크립트 실행이 중지되고 다음 메시지가 표시됩니다.Error: Partition(s) on /dev/nvme1 are being used.

명령을 수동으로 실행하면 메시지가 표시되고 "i" 응답을 전달하여 경고를 무시하고 계속할 수 있습니다. 인터넷 검색을 통해 -s 옵션을 사용하여 실행할 때 parted가 기본 응답을 가정한다는 것을 알게 되었습니다. 이 경고가 나타나면 기본 옵션은 실수로 드라이브가 손상되는 것을 방지하기 위해 취소하는 것이라고 가정합니다.

-s를 parted에 전달하지 않고 스크립트를 실행하면 터미널에 입력하라는 메시지가 표시되고 입력을 제공한 후 나머지 스크립트는 정상적으로 실행됩니다. 그런 다음 이와 같은 echo를 사용하여 응답을 파이프하려고 시도했지만 echo "i\ny\ni" | repart.sh그것도 작동하지 않는 것 같습니다.

원하는 동작을 얻기 위해 이 기본값을 재정의하는 방법이 있습니까? 그렇지 않다면 이를 달성할 수 있는 다른 방법이 있습니까?

맥락: 이 스크립트를 실행하는 대상 컴퓨터는 Ubuntu 18.04.3 LTS를 실행 중입니다.

참고: Ubuntu에 표준이 아닌 다른 유틸리티를 설치할 수도 있지만 그렇게 하고 싶지는 않습니다.

편집: @chexum 덕분에 해결책을 찾았습니다! parted:를 실행하기 전에 wifs 유틸리티를 호출하도록 스크립트를 수정한 wipefs -a -f $DRIVE다음, 나머지 하나의 프롬프트에 응답하기 위해 'i'를 파이프로 연결하도록 parted 명령을 수정했습니다 yes "i" | parted $DRIVE mklabel gpt. 이제 작업이 완전히 자동화되었습니다. 주의하지 않으면 wifs 유틸리티를 사용할 때 자체적인 위험이 따릅니다. 이 솔루션은 제 목적에는 적합하지만 다른 목적에는 적합하지 않을 수 있습니다.

관련 정보