parted 유틸리티를 사용하여 드라이브를 다시 분할하는 bash 스크립트를 작성하려고 합니다. 스크립트 내에서 실행되기 때문에 사용자에게 입력하라는 메시지를 표시하지 않는 것을 분리하고 싶습니다(또는 해당 메시지에 응답할 수 있는 방법이 있음).
처음에는 "-s" 또는 "--script" 옵션을 parted에 전달하려고 시도했지만 예상대로 작동하지 않았습니다. 스크립트를 실행하려고 하면 parted $DRIVE -s mklabel gpt
parted가 "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 유틸리티를 사용할 때 자체적인 위험이 따릅니다. 이 솔루션은 제 목적에는 적합하지만 다른 목적에는 적합하지 않을 수 있습니다.