Beaglebone Black에서 더 많은 inode를 사용하여 데비안에서 파티션 생성

Beaglebone Black에서 더 많은 inode를 사용하여 데비안에서 파티션 생성

나는 beaglebone black을 가지고 있고 debian wheezy를 설치했습니다.http://www.armhf.comeMMC에

이 방법은 제대로 작동했지만 최근까지 장치에 여전히 40%의 여유 공간이 있음에도 불구하고 파티션에 inode가 부족했습니다. 이제 나는 Unix 마운트 파일 시스템에 inode를 추가할 수 없으며 파티션을 다시 생성해야 한다는 것을 이해합니다. 작업을 백업한 후에 기꺼이 수행할 것입니다. 유일한 질문은 어떻게 해야 합니까?

내가 지금까지 시도한 것은 다음과 같습니다.

부팅 가능한 데비안으로 microSD를 만들고,

USB로 데비안으로 부팅하고 emmc를 포맷하세요.

mkfs.ext4 -i 4096 /dev/mmcblk1

내 이해는 -i 매개변수를 사용하면 4096바이트마다 inode가 생성되도록 지정할 수 있다는 것입니다. 한 번은 4096으로, 두 번째는 2048로 두 번 시도했습니다.

데비안 이미지 가져오기

wget http://s3.armhf.com/debian/wheezy/bone/debian-wheezy-7.2-armhf-3.8.13-bone30.img.xz

새 파티션에 압축을 푼다

xz -cd debian-wheezy-7.2-armhf-3.8.13-bone30.img.xz > /dev/mmcblk1

이것은 나에게 올바른 단계인 것 같습니다. df -i를 입력할 때마다 이 작업을 수행할 때마다 결과는 항상 동일한 수의 인덱스 노드(11,7000~) 또는 이와 유사한 것입니다. 구현 방법에 대한 조언을 정말 감사하겠습니다. 기본값보다 높은 inode에 대한 지침이 늘어났습니다.

건배 팀

답변1

문제는 를 실행하면 xz -cd ... > /dev/mmcblk1이전에 생성된 파일 시스템을 덮어쓰게 된다는 것입니다. 다운로드하는 이미지는 미리 포맷된 파일 시스템을 갖춘 완전한 디스크 이미지입니다.

사전 빌드된 이미지를 사용하려는 경우 유일한 해결 방법은 파티션에서 데이터를 복사하고 다시 포맷한 다음 데이터를 다시 복사하는 것입니다.

명령을 실행한 후 이제 파일 시스템을 포함하는 파티션이 있다고 가정합니다 xz -cd ... > /dev/mmcblk1./dev/mmcblk1p1
이 작업을 수행할 필요가 없는 지침을 따르는 경우 새 파티션에 대한 파티션 테이블을 다시 검색해야 할 수도 있습니다. 이는 다음을 사용하여 수행됩니다.partprobe /dev/mmcblk1

# Get the current UUID & filesystem label
eval "$(blkid -o export /dev/mmcblk1p1)"
# This just created 2 variables called $LABEL and $UUID

# Mount the partition somewhere  
mount /dev/mmcblk1p1 /mnt/bone

# Copy the contents off
tar --numeric-owner -czpSf /tmp/bone.tar.gz -C /mnt/bone .

# Unmount the partition
umount /mnt/bone

# Format the partition
mkfs.ext4 -i 4096 -U "$UUID" -L "$LABEL" /dev/mmcblk1p1

# Mount the partition back up
mount /dev/mmcblk1p1 /mnt/bone

# Copy the contents back
tar -C /mnt/bone --numeric-owner -xzpf /tmp/bone.tar.gz

# Unmount again
umount /mnt/bone

이 시점에서 사용자 정의된 수의 inode를 사용하여 완전히 재구축된 ext4 파일 시스템을 갖게 됩니다.

관련 정보