파일 시스템을 손상시키는 방법

파일 시스템을 손상시키는 방법

과거에는 메모리 사용량이 높았기 때문에 일부 대규모 파일 시스템(약 50TB)에서 'xfs_repair'를 테스트할 예정입니다. 올바른 파일 시스템에서만 프로그램을 테스트할 수 있지만 손상된 시스템에서 테스트하는 것이 좋을 것입니다.

그렇다면 파일 시스템을 손상시키는 가장 좋은 방법은 무엇일까요? 메서드가 매번 동일한 손상을 반복적으로 제공하는 경우 추가 크레딧을 제공합니다....

2006년에 내가 의미하는 바를 사람들에게 알려주기 위해

"멀티 테라바이트 파일 시스템에서 성공적으로 확인하거나 복구를 실행하려면 다음이 필요합니다.

  • 64비트 머신
  • 64비트 xfs _ 수리/xfs _ 바이너리 확인
  • 파일 시스템 테라바이트당 최대 2GB RAM
  • 파일 시스템에서 백만 개의 inode당 100-200MB의 RAM.

xfs_repair는 일반적으로 이보다 적은 메모리를 사용하지만 이 숫자는 80%가 넘는 대용량 파일 시스템을 복구하는 데 필요한 대략적인 수치를 제공합니다.

FWIW, 지난번에 이 문제가 내부적으로 나타났을 때 문제의 29TB 파일 시스템을 복구하는 데 ~75GB의 RAM+스왑이 필요했습니다."

답변1

xfs_db에는 blocktrash 옵션이 있습니다.

무작위로 선택된 파일 시스템 메타데이터 블록을 삭제합니다. 선택된 블록에서 무작위로 선택된 비트에 대해 폐기가 발생합니다. 이 명령은 xfs_db 디버깅 버전에서만 사용할 수 있습니다. 테스트 xfs_repair(8)및 에 유용합니다 xfs_check(8).

예를 들어

xfs_db -x -c blockget -c "blocktrash -s 512109 -n 1000" /dev/xfstest/testfs

답변2

dd는 파일 시스템이 있는 장치에 대한 블록입니다. 반복 가능하도록 스크립트를 작성할 수 있습니다. 임의의 위치에 임의의 블록 몇 개를 놓은 다음 계속 진행하세요.

답변3

블록 장치의 처음 512바이트(MBR 및 파티션 테이블)를 덮어쓸 수 있습니다.

먼저 백업하세요.

dd if=/dev/device bs=512 count=1 of=backup.bin

그리고 나중에 0으로 설정하세요.

dd if=/dev/zero bs=512 count=1 of=/dev/device

그 후에는 컴퓨터가 부팅되지 않아야 합니다. 라이브 CD를 사용하여 XFS 복구를 테스트할 수 있습니다.

관련 정보