![debugfs를 통해 ext3/ext4 파일 시스템을 확장하는 방법은 무엇입니까?](https://rvso.com/image/170272/debugfs%EB%A5%BC%20%ED%86%B5%ED%95%B4%20ext3%2Fext4%20%ED%8C%8C%EC%9D%BC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%84%20%ED%99%95%EC%9E%A5%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
펌웨어에서 사용하는 ext4 파일 시스템의 기본 크기를 확대하고 싶은 상황에 처해 있습니다.
문제는 resize2fs
일부 파일 시스템 기능을 지우고 저널을 장치 파티션의 시작 부분으로 재배치하는 것과 같은 추가 작업을 수행하는 것입니다. 결과적으로 장치를 마운트하기 전에 계속 충돌이 발생하고 커널 콘솔에 액세스하는 방법을 모르기 adb
때문에 console=
장치 디스플레이에 콘솔을 인쇄하기 위해 어떻게 액세스하거나 커널 매개변수를 조정하는지 전혀 모르겠습니다 .
이는 확장을 위한 것이므로 일반적으로 재배치가 필요하지 않습니다. 그렇다면 debugfs
사용 가능한 inode 수와 함께 (필요한 경우) 크기를 변경하는 데 사용하는 방법은 무엇입니까 ? 어느 필드를 set_super_value
설정해야 하고 어떤 숫자를 선택해야 합니까?
더 중요한 것은,그룹 설명자 체크섬은 어떻게 설정하나요??
답변1
파일 시스템이 매우 작지 않은 한(< 128MB) 파일 시스템 크기를 조정하기 위해 슈퍼 블록의 정수를 변경할 수는 없습니다. 파일 시스템을 유용하게 사용하려면 업데이트해야 하는 다른 메타데이터 구조가 있습니다. 즉, 당신은~할 것 같다debugfs "set_super_value"(ssv) 명령을 사용하여 슈퍼블록의 s_blocks_count 필드를 업데이트한 다음 e2fsck를 실행하여 누락된 메타데이터 자체를 다시 빌드하도록 할 수 있습니다.
이를 수행하는 능력은 파일 시스템의 크기를 얼마나 조정하는지, 그리고 파일 시스템을 포맷할 때 "resize_inode" 기능이 활성화되었는지 여부에 따라 크게 달라집니다. 그렇지 않으면 e2fsck가 다시 빌드하는 누락된 메타데이터가 다른 중요한 파일 시스템 내용과 겹쳐서 다른 문제를 일으킬 수 있습니다.
이것이 작동하는지 확인하는 가장 좋은 방법은 전체 파일 시스템의 이미지를 만들고 테스트하는 것입니다.