루트 파일 시스템의 일부를 구성하는 파티션을 포함하는 고장난 하드 드라이브가 있습니다.
matt@ryzen3950 ~> btrfs device stats /dev/dm-2
[/dev/mapper/cryptsda1].write_io_errs 0
[/dev/mapper/cryptsda1].read_io_errs 0
[/dev/mapper/cryptsda1].flush_io_errs 0
[/dev/mapper/cryptsda1].corruption_errs 12
[/dev/mapper/cryptsda1].generation_errs 0
다른 저장 장치로 교체하고 싶습니다. 이를 위해 먼저 새 드라이브를 분할하고 암호화합니다.
matt@ryzen3950 ~> sudo parted /dev/sdd
(parted) mklabel gpt
(parted) mkpart primary btrfs 1MiB 100%
(parted) quit
matt@ryzen3950 ~> sudo cryptsetup luksFormat /dev/sdd1
matt@ryzen3950 ~> sudo cryptsetup open --type luks /dev/sdd1 cryptsdd1
(나는 mkfs
이것에 대해 아무것도 하지 않았다)
그런 다음 btrfs 교체를 수행하려고 시도했습니다(파일 시스템이 현재 활성화되어 있음에 유의).
sudo btrfs replace start /dev/mapper/cryptsda1 /dev/mapper/cryptsdd1 /
그러나 오류가 발생합니다.
/dev/mapper/cryptsdd1 appears to contain a partition table (atari).
ERROR: use the -f option to force overwrite of /dev/mapper/cryptsdd1
애초에 드라이브를 분할하지 말았어야 했던 것 같습니다. 다음을 수행해야 합니까?
sudo btrfs replace start /dev/sda /devsdd /
그렇지 않다면 올바른 접근 방식은 무엇입니까?
마지막으로 <path>
btrfs에서 대체란 무엇입니까? 나는 이것이 파일 시스템 마운트 지점(예: /
라이브 루트 파일 시스템)이라고 생각합니다. 맞습니까?
전체 btrfs-replace 매뉴얼 페이지도 읽었습니다.Btrfs 위키, 하지만 내 질문에 대한 답변을 찾을 수 없습니다.
답변1
그러나 오류가 발생합니다.
/dev/mapper/cryptsdd1 appears to contain a partition table (atari). ERROR: use the -f option to force overwrite of /dev/mapper/cryptsdd1
제안된 대로 명령을 실행 btrfs
하거나 먼저 실행하십시오.-f
wipefs -a /dev/mapper/cryptsdd1
당신은 실제로 입력하고 있습니다libblkid의 알려진 문제(최신 util-linux로 이미 수정됨), 대부분의 저장소 도구에서 사용되는 장치의 파일 시스템을 감지하기 위한 라이브러리 - btrfs는 여기에서 이를 사용하여 사용하려는 장치가 비어 있는지 확인하여 사용자가 실수로 기존 항목을 삭제하지 않도록 경고할 수 있습니다. 파일 시스템. 이 경우 libblkid는 새로 생성된 LUKS 장치에 Atari 파티션 테이블이 포함되어 있다고 잘못 생각합니다. 이는 거짓 긍정이며 일부 임의의 데이터가 Atari 슈퍼 블록이라고 생각합니다.
애초에 드라이브를 분할하지 말았어야 했던 것 같습니다. 다음을 수행해야 합니까?
sudo btrfs replace start /dev/sda /devsdd /
절대 그렇지 않습니다. btrfs는 파일 시스템 수준에서만 관심을 갖고 기본 파티션과 LUKS 장치를 "알지" 못하므로 이러한 장치를 먼저 다시 만드는 것이 옳은 일입니다.
마지막으로
<path>
btrfs에서 대체란 무엇입니까? 나는 이것이 파일 시스템 마운트 지점(예:/
라이브 루트 파일 시스템)이라고 생각합니다. 맞습니까?
나는 btrfs 전문가는 아니지만 이것이 맞다고 생각하며 btrfs replace
명령의 첫 번째 버전이 나에게는 괜찮아 보입니다. 반드시 먼저 백업을 해주세요.