vfatファイルシステムのサイズを含むパーティションのサイズと正確に一致するようにどのように拡張できますか?

vfatファイルシステムのサイズを含むパーティションのサイズと正確に一致するようにどのように拡張できますか?

以来、追加の質問ですこれ

私はGoogleを試しましたが、ほとんどの検索結果はパーティションとファイルシステムを同時に増やす方法です。

私のパーティションはすでにファイルシステムよりも大きいので、問題はこれよりも単純だと思いますが、ファイルシステムを拡張してパーティションを埋めたいと思います。

私のファイルシステムがパーティションより小さい理由は、パーティションをmkfsフォーマットせずにcatファイルシステムイメージをパーティションに書き込むためです。そして、イメージはターゲットパーティションよりも小さい。

パーティションを完全に埋めるためにファイルシステムを増やす必要があるのは、間隔があると組み込みSoCが起動しないためです。このWikiの最後に説明

答え1

携帯電話でmicroSDカードのサイズをアップグレード中にこの問題が発生しました。一度はdd、既存のカードを新しいカードに複製したことがあります。新しいパーティションは大きくなりますが、ファイルシステムのサイズはまだ古いmicroSDと同じです。この問題を解決するために私fdiskfatresize。また、私はパーティショニングを使用しています/dev/mmcblk0p1fatresize、何らかの理由でパーティショニングが気に入らないことに注意する必要があります(エラーが発生します:)Could not stat device /dev/mmcblk0p - No such file or directory.。したがって、上記の解決策を使用する必要があります。https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=810735そしてソフトリンクを追加してくださいsudo ln -s /dev/mmcblk0p1 /dev/tmp

とにかくvfatパーティションのサイズを変更するには(/dev/tmp特定のパーティションの交換):

  1. sudo fdisk -s /dev/tmpパーティションサイズをkB単位で決定するために使用されます。私の場合はこれです244244480
  2. sudo fatresize -s 244244480k /dev/tmp(手順1でパーティションサイズを交換します。)

いつものように、これを試す前にパーティションをバックアップしてください。

回避策を使用する必要がある場合は、一時デバイスのソフトリンクを削除する必要があります。

答え2

私が知っている唯一の方法は、パーティションを少し縮小または増やすことですgparted(または以前のバージョンでもpartedまだこれを行います)。どういうわけか、サイズ変更コードはvfatこのパーティショナー(またはその問題について)に隠されており、それを直接実行したり、より多くのオプションを提供したりするlibparted同様のツールはないようです。resize2fs

これらのサイズ変更が組み込みSoCに十分かどうか - vfatがどのパーティションサイズにどれだけうまく適応できるかはわかりません。テストできるプログラムに接続しました。値が一致するようにパーティションを少し小さくする必要があります。

関連情報