클린 상태에서 시작하려면 명령 줄에서 하드 디스크를 빈 상태로 재설정해야합니다.
지우기 유틸리티를 실행하는 것이 아니라 데이터를 덮어 쓸 필요가 없습니다.
이 질문은 명령 줄에서 모든 파티션 삭제 와 매우 유사합니다
그 해결책은 잘 작동합니다.
dd if=/dev/zero of=/dev/sda bs=512 count=1 conv=notrunc
그러나 덮어 쓴 디스크로 작업하려면 장치가 여전히 사용 중이라는 오류가 발생합니다.
root@grml ~ # blockdev --rereadpt /dev/sda
BLKRRPART: Device or resource busy
또는
root@grml ~ # partprobe
Error: Partition(s) 2, 3 on /dev/sda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.
Error: Partition(s) 2, 3 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.
따라서 장치에 “앉아있는”모든 항목을 수동으로 비활성화해야합니다.
umount /mnt/debootstrap
umount /mnt/debootstrap/tmp
umount /mnt/debootstrap/var/log
umount /mnt/debootstrap/var
umount /mnt/debootstrap/home
service mdadm stop
service lvm2 stop
vgremove vg_main
pvremove /dev/md1
mdadm --stop /dev/md0
mdadm --stop /dev/md1
mdadm --remove /dev/md0
mdadm --remove /dev/md1
그 후 partprobe
명령이 작동합니다.
더 간단하게 작동하는 명령이 있습니까? 처럼
harddiskreset /dev/sda
파티션 / lvm / md 레이아웃이 다른 시스템에서 쉽게 사용할 수 있습니까?
답변
이 wipefs
프로그램을 사용하면 파티션 테이블 서명을 쉽게 삭제할 수 있습니다.
wipefs -a /dev/sda
그래도 LVM과 같은 장치를 사용하는 프로세스는 중지해야합니다.
에서 man wipefs
wipefs는 지정된 장치에서 파일 시스템, RAID 또는 파티션 테이블 서명 (매직 문자열)을 지워서 libblkid에 서명을 보이지 않게 할 수 있습니다.
wipefs는 파일 시스템 자체 나 장치의 다른 데이터를 지우지 않습니다. 옵션없이 사용하면 wipefs는 보이는 모든 파일 시스템과 기본 서명의 오프셋을 나열합니다.
wipefs는 파티션 테이블 서명을 지울 때 BLKRRPART ioctl을 호출하여 변경 사항을 커널에 알립니다.
답변
나는 항상 이것을 위해 parted를 사용했다. 디스크 레이블 유형을 변경하고 파티션을 추가 / 제거하는 데 특히 효과적입니다. 특히 fdisk와 달리 최신 대형 HDD를 처리 할 수 있기 때문입니다.
당신은 실행할 수 있습니다
$ sudo parted /dev/sda
이것은 일을 시작하고 당신을 parted 터미널로 데려다 줄 것입니다. 그런 다음 help 명령을 실행하여 사용 가능한 모든 명령을 표시 할 수 있습니다. 매우 설명이 필요합니다.
예, 포맷하려는 디스크의 모든 파티션을 마운트 해제해야합니다. 모든 파티션을 마운트 해제하는 더 빠른 방법을 찾고 있다면 umount 명령에서 정규식으로 할 수는 있지만 어리석은 것처럼 보입니다.
parted를 사용하여 HDD를 관리하면서 디스크를 새로 고칠 필요가 없었습니다.
새로운 용도로 드라이브를 완전히 새로 고치려면 일반적으로 다음을 수행하십시오.
1) 달리기로 시작 sudo parted /dev/sda
2) 실행하여 기존 파티션을 찾으십시오. print
3) rm 1
1을 제거하려는 파티션 번호로 대체하여 기존 파티션 을 제거하십시오. 그런 다음 디스크에 남아있는 모든 파티션에 대해 반복하십시오.
4) mklabel gpt
gpt 레이블 유형을 사용 하여 디스크 레이블을 재설정 하지만 표준 msdos 또는 원하는대로 사용할 수 있습니다. 다음은 디스크 레이블 유형 목록입니다
5) 다음을 실행하여 새 파티션을 mkpart
작성하십시오. 그러면 파티션 작성 마법사가 실행됩니다. 시작점과 끝점은 기본적으로 섹터입니다. 실행 unit
하기 전에 명령 을 실행하여이를 변경할 수 있습니다. mkpart
이렇게하면 GB 또는 TB 또는 MB 등으로 지정할 수 있습니다.
6) print
새 파티션 테이블 정보를 보는 데 사용하여 결과 확인
7) 그런 다음 파티션을 포맷해야합니다. 일부 옵션을 사용할 수 있지만이 작업은 parted를 통해 수행하면 안됩니다. 대신 quit
분할 된 터미널을 종료 mkfs
하고 파티션을 포맷하는 데 사용 하는 것이 좋습니다 . 디스크 전체가 아닌 파티션을 포맷하기 때문에 / dev / sda 대신 / dev / sda1에서 ‘mkfs’를 실행해야합니다.
그게 다야.
이것이 귀하의 질문에 답변되기를 바랍니다.
또한 다음은 참조 용 온라인 부분 매뉴얼입니다 : https://www.gnu.org/software/parted/manual/html_node/index.html
편집하다:
OP는 터미널이 아닌 스크립트에서 이런 종류의 작업을 수행하려고했습니다. parted 터미널 내에서 단일 행 명령을 통해 parted를 실행하여 스크립트를 통해 동일한 종류의 절차를 수행 할 수 있습니다.
예를 들어
$ sudo parted /dev/sda print
드라이브 정보와 파티션 테이블을 bash 콘솔에 출력 한 다음 grep etc를 사용하여 변수 나 bash 스크립트에서 원하는 것을 생성 할 수 있습니다.
답변
답변
기본적으로이 오류
오류 : / dev / sdc의 파티션 1이 작성되었지만 사용 중이므로 변경 사항을 커널에 알릴 수 없습니다. 결과적으로 이전 파티션은 계속 사용됩니다. 추가로 변경하기 전에 지금 재부팅해야합니다.
디스크를 파티션하는 동안 일부 매개 변수를 놓치면이 나타납니다. 파티셔닝 중에 정의한 매개 변수를 자세히 보면이 오류를 해결할 수 있습니다.
사용 :
fdisk -l
디스크의 매개 변수를 확인하십시오.