私はbeaglebone blackを持っていて、debian wheezyをインストールしました。http://www.armhf.comeMMCへ
この方法はうまく機能しましたが、最近までデバイスにまだ40%の空き容量があるにもかかわらず、パーティションにinodeが不足していました。今、私はUnixマウントファイルシステムにinodeを追加することはできず、パーティションを再作成する必要があることを理解しています。ジョブをバックアップしたら、喜んで実行します。唯一の質問はどうすればよいですか?
私が今まで試したことは次のとおりです。
起動可能な Debian で microSD を作成し、
USBでDebianで起動し、emmcをフォーマットします。
mkfs.ext4 -i 4096 /dev/mmcblk1
私の理解は、-iパラメータを使用して4096バイトごとにinodeを生成するように指定できることです。 1回は4096で、2回目は2048で2回試しました。
Debian イメージのインポート
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ファイルシステムがあります。