小さいSDカードに複製

小さいSDカードに複製

私のRaspberry Piの1つは、4GB SDカードをルート/ブートファイルシステムとして使用しています。

別のシステムにインストールすると、次のことがわかります。

Disk /dev/sdc: 3904 MB, 3904897024 bytes
121 heads, 62 sectors/track, 1016 cylinders
Units = cylinders of 7502 * 512 = 3841024 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000714e9

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               2          17       57344    c  W95 FAT32 (LBA)
/dev/sdc2              17         800     2938880   83  Linux

これは、使用可能な4GBのうち3GBのみ(意図的に)使用しており、使用中のシリンダーが最初の部分と揃っていることを示しています(フラッシュがそのように機能する場合)。

cp以前は、既存のファイルシステムをより小さい(フォーマットされた)ターゲットファイルシステムに移行するためにこのコマンドを使用したことがありますが、ddこのコマンドの単純さを好みます。

Q1:ddこのディスクを少し小さい(正確に言えば44MBより小さい)4GBのSDカードに安全に複製できますか?

元のディスクに残りのディスク領域全体を埋める2番目のパーティションがありますが、部分的にのみ使用されるファイルシステムがある場合は、時間が経つにつれてパーティションの最後にファイルビットが散在する可能性があると確信しています。物理ターゲットディスクの境界を上書きすることができます)

Q2a:パーティションの終わりが使用されないようにするには、move-files-to-beginning-kinda-defragコマンドを実行できますか?

Q2b:パーティションの終わりが使用されていないことがわかっている場合は、パーティションをddより小さなターゲットディスクに安全に切り取り、簡単な方法で誤ったソートを修正できますかfsck

ベストアンサー1

最後のパーティションの終わりがターゲットドライブに収まると確信している場合は、ドライブを一括コピーできます。使用しないでくださいdd、他のオプションと一緒に使用しない限り、速度が遅く、常にそうではありません。を使用するとエラーが発生しやすくなりますcat

cat /dev/sdc >/dev/sdz

/dev/sdz上書きするドライブの正しいパスに置き換えます。 1つのスペルエラーが原因でシステムが壊れる可能性があるため、正しく入力したことを確認してください。通常、名前にディスクモデルとドライブの接続方法の表示を含むエントリまたはエントリを介して/dev/disk/by-id/ディスクにアクセスできます。これはエラーのリスクを大幅に減らします。/dev/disk/by-path/

fdisk選択した別のツールを使用して新しいディスクにパーティションテーブルを作成し、ターゲットパーティションがソースパーティションと同じサイズ(または大きい)であることを確認してから、各パーティションをコピーするとエラーが少なくなります。 、たとえば(同じパーティション番号が保持されている場合)

cat /dev/sdc1 >/dev/sdz1
cat /dev/sdc2 >/dev/sdz2

パーティション(より正確にはファイルシステム - 一般的なLinuxシステムにはどのマウントポイントがありますか?一部の背景知識を提供)未完成といって、開始部分をコピーして終了部分を省略してもよいわけではありません。ファイルがどこにあるのか予測できず、ファイルシステムに制御データが含まれています。切り捨てられたファイルシステムをコピーすると、ファイルシステムが破損する可能性があります(修正することをfsck期待しないでください。利用可能なものを得ることはできますが、そうではありません。)内容がコピーされた部分を超える回復可能なファイルではありません。

パーティションをより小さなスペースにコピーまたは移動したり、単にパーティションを縮小したい場合は、まず含まれているファイルシステムを縮小してください。たとえば、ext2/ext3/ext4 ファイルシステムの場合は、実行してresize2fsファイルシステムを縮小します。ファイルシステムの縮小は、目的の「ファイルを最初に移動する最適化」操作です。その後、パーティションの縮小などのツールを使用しfdiskたり、ファイルシステムをより小さなパーティションにコピーしたりできます。パーティション・サイズがファイル・システム・サイズより大きいことを確認してください。 GNU Partedは時々ファイルシステムとパーティションの両方を一度に縮小することができます(ファイルシステムとパーティションの種類によって異なります)。

おすすめ記事