/dev/sda1 대신 /dev/sda에서 fsck를 실행하면 어떻게 됩니까?

/dev/sda1 대신 /dev/sda에서 fsck를 실행하면 어떻게 됩니까?

fsck과거에 실행할 때 항상 파일 시스템 파티션이라고 생각했던 곳에서 실행했습니다. fsck -yf /dev/sdaN, 여기서 N은 디스크 A의 파티션 번호입니다. 내 친구가 최근에 fsck새 디스크를 실행했는데 fsck -yf /dev/sda. fsck전체 디스크 /dev/sda에서 실행하는 것( )과 단일 파티션에서 실행하는 것( )의 차이점이 무엇인지 궁금합니다 /dev/sda1.

답변1

fsck가 실행되면 먼저 위치를 찾으려고 시도해야 합니다.슈퍼 블록파일 시스템의 시작은 이를 확인하기 위해 파일 시스템의 구조를 탐색합니다. 이 /dev/sda장치는 전체 드라이브에 해당하므로 디스크의 첫 번째 부분에는 다음이 포함될 수 있습니다.파티션 테이블또는마스터 부트 레코드fsck지원되는 파일 시스템에 대한 슈퍼블록을 찾을 수 없습니다(특정 파일 시스템과 일치하는 항목을 얻지 않는 한) .매직넘버알려진 파일 시스템의 경우). 나는 그것이 오류로 종료되거나 (당신의 친구가 겪고 있는 것처럼) 부정확한 출력을 제공하기를 바라고 있습니다. 그러나 나는 이 실험을 직접 수행하지 않았습니다.

답변2

sda1예를 들어 파일 시스템이 파티션에 마운트되어 있으면 작동하지 않습니다.

fsck및 그 형제는 파일 시스템에서 유지 관리를 수행하는 데 사용되는 도구입니다(따라서 이름은 다음과 같습니다.에프엘리에스체계조사하다케이), 블록 장치가 아닌.

비슷한 방식으로 파일 시스템을 블록 장치에 직접 배치하는 것이 이론적으로 가능하다고 생각 mke2fs -j /dev/sda하지만 이는 매우 나쁜 습관입니다. 하지만 그렇게 하면 파일 시스템이 바로 그 위에 위치하게 되고 sda실제로 fsckfsck해당 장치를 가리키기만 하면 됩니다. 이러지 마세요. 파티션 테이블이 존재하는 이유는 디렉토리에서 명목상의 공간을 차지하는 것만이 아닙니다.

답변3

장치에 지원되는 파일 시스템이 포함되어 있으면 fsck가 작동해야 합니다. 장치는 전체 하드 드라이브(예: /dev/sda), 파티션 또는 플로피 디스크(예: /dev/fd0) 또는 다른 하드 드라이브에 있는 파일(예: ~/ hdimage.img). 플로피 드라이브의 경우 일반적으로 전체 드라이브가 사용되므로 파티션을 나눌 이유가 없으므로 파일 시스템은 /dev/fd0에 있습니다. 전통적으로 하드 드라이브는 파티션으로 나누어지고 파일 시스템은 파티션에 내장됩니다. 그러나 전체 드라이브를 하나의 파티션으로 사용하고 여기에서 부팅할 필요가 없는 경우 장치에서 직접 파일 시스템을 생성하고(mke2fs /dev/sdb) 이를 마운트한 후 여러 파일을 복사할 수 있습니다. , 그러면 fsck / dev/sdb가 작동해야 합니다. 이것을 "슈퍼 플로피" 구성이라고 합니다. 내 생각엔 오래된 iomega 100MB 디스크도 일반적으로 이런 방식으로 포맷되었던 것 같습니다. 디스크에는 파일 시스템이 필요하지도 않습니다. 파일이 있을 수 있습니다. 나는 종종 DVD에 들어갈 tar 파일을 만든 다음 디스크에 굽습니다. 이 시점에서 디스크는 마운트되지 않지만 tar -xvf some/where/myfile /dev/sr0은 디스크에서 myfile을 추출합니다.

관련 정보