'cat'コマンドを使用してLinuxパーティションをバックアップまたはクローンする方法


Linux catコマンドの大まかな使用法は、コマンド出力をハードディスク、USBスティック、またはローカルイメージファイルのパーティションにリダイレクトするか、ディスクパーティションの書き込みを行うことにより、フルディスクバックアップまたはディスクパーティションバックアップを作成するか、ディスクパーティションのクローンを作成することです。ネットワークソケットへの出力。

後者が同じ仕事を簡単に行うのに、なぜddよりもcatを使用する必要があるのかを考えるのはごく普通のことですが、最近、速度とパフォーマンスに関しては、catがddよりもはるかに高速であることに気付きました。

私は、ddがさらに多くのオプションを提供し、テープドライブ(「dd」コマンドを使用してLinuxパーティションをクローンする方法)などの大規模なバックアップを処理するのにも非常に役立つことに同意しますが、catにはより少ないオプションが含まれており、必ずしもddの代わりに値するわけではありませんしかし、それでも、該当する場合はオプションのままです。

私を信じてください、それはパーティションの内容を新しいフォーマットされていないパーティションにコピーすることで非常にうまく仕事を成し遂げます。唯一の要件は、既存のデータの最小サイズで、ファイルシステムがまったくない有効なハードディスクパーティションを提供することです。

以下の例では、/boot パーティションに対応する最初のハードディスクの最初のパーティション、つまり/dev/sda1 が、2番目のディスクの最初のパーティションに複製されます。 (つまり、/dev/sdb1 )Linuxリダイレクト演算子を使用します。

# cat /dev/sda1 > /dev/sdb1

コマンドが終了すると、複製されたパーティションが/mnt にマウントされ、両方のマウントポイントディレクトリが一覧表示され、不足しているファイルがないかどうかが確認されます。

# mount /dev/sdb1 /mnt
# ls /mnt
# ls /boot

パーティションファイルシステムを最大サイズに拡張するには、root権限で次のコマンドを発行します。

$ sudo resize2fs /dev/sdb1

cat コマンドは、Linuxおよび一部の特別なマルチメディアファイルでテキストファイルを操作するための優れたツールですが、バイナリデータファイルまたは連結シバンファイルでは使用しないでください。他のすべてのオプションについては、コンソールから man cat を実行することを躊躇しないでください。

$ man cat

驚いたことに、tacと呼ばれる別のコマンドがあります。はい、私はtacについて話しています。これは、ファイルの各行を逆の順序で表示するcatコマンドの逆バージョンです(逆に綴られています)。tacについて詳しく知りたい場合は、方法を読んでください。 LinuxでTacコマンドを使用するには。