私の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は時々ファイルシステムとパーティションの両方を一度に縮小することができます(ファイルシステムとパーティションの種類によって異なります)。
答え2
これを使用して、dd
すべてのデバイスのコピーではなくパーティションのコピーを作成できます。
dd if=/dev/sad1 of=/tmp/boot.img
dd if=/dev/sad2 of=/tmp/root.img
については第2四半期:
これを何度も実行しましたが、問題はありませんでしたが、まだお勧めできません。