Beaglebone Blackでより多くのinodeを使用してDebianでパーティションを作成する

Beaglebone Blackでより多くのinodeを使用してDebianでパーティションを作成する

私は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ファイルシステムがあります。

おすすめ記事