web-dev-qa-db-ja.com

Linuxを別のパーティションに移動する方法は?

(/に含まれていて、/ mnt/sdb5に新しい場所が準備されている)動作中のLinuxシステムのコピーを作成する必要があります。これには、/ devにハードリンク、ソフトリンク、および特殊ファイルが大量に含まれているようです。 cpioは、追加のマジックを適用せずにこのジョブを処理しますか?

現在知られているセーフガード:

  • コピーが起動可能と見なされ、root=/dev/sdb5で動作するまで、実行中のシステムを削除/変更しません。削除する前に、パーティション全体のバックアップを取ってください。
  • cpioを使用して各ルートディレクトリを個別にアーカイブするため、LiveCD環境から展開され、ドナーパーティションが損なわれることはありません。

しかし、それでも、cpioがいくつかのフラグを逃し、アクセス権/ノードタイプ/ソフトまたはハードリンクを不自由にしたからといって、時間を失うことはありません。

どのツールを使用するか/どの水中岩石を避けるべきか?

9
kagali-san

cpioに関する実際の質問に答えるには、次のフラグを使用しますcpio

find / -xdev -depth \! -path ./lost+found -print0 | cpio --pass-through --null --dot --make-directories --unconditional --preserve-modification-time --sparse /mnt/sdb5

もちろん、ネットワーク経由でコピーしているわけではないので、私はcpを使用するだけです。

cp --archive --sparse=always --verbose --one-file-system --target-directory=/mnt/sdb5 /

また、コピーを複数回実行したい場合は、再開機能としてrsyncを選択することをお勧めします。 (また、cpと同様に、ACLと拡張属性を処理し、オプションでcpioのようにネットワーク経由で機能します。ローカルで最初のコピーを行うことを除いて、これは最も便利なオプションです。 cpを使用して実行します。)

rsync --archive --inplace --hard-links --acls --xattrs --devices --specials --one-file-system --8-bit-output --human-readable --progress / /mnt/sdb5

コピーすることを忘れないでください/bootおよび/dev

/bootは簡単です。コピーするだけです。だが /devudevによって非表示になっているため、最近はかなりトリッキーです。次の手順をお勧めします。

  1. mkdir /tmp/dev
  2. mount --move /dev /tmp/dev
  3. コピー/devから/mnt/sdb5上記のコマンドのいずれかを使用
  4. mount --move /tmp/dev /dev
  5. rmdir /tmp/dev
10
Teddy

@Kloxが述べたように、同じサイズのパーティションをコピーするときは、ddを使用することに同意します。

ただし、サイズの異なる別のパーティションにディスクをコピーする場合は、rsyncを使用します。新しいパーティションをマウントして(たとえば、/ mnt/new)、次のようにします。

# rsync -a --exclude=/proc --exclude=/dev --exclude=/sys / /mnt/new

シンボリックリンクの追加の魔法はなく、ライブCDも必要ありません(シングルユーザー/ init 1で十分です)。

6
Torian

ddのより最適なバリアントは partimage を使用し、パーティションの使用されたセクションのみをコピーして、未使用の大きなパーティションのコピーをより適切にします。

重要な警告に注意してください:

Partimageは、新しいUbuntuインストールのデフォルトであるExt4をサポートしていません。

便利なコピーが System Rescue CD ディストリビューションに含まれています。

3
Steve-o

Linuxインストールをハードドライブ間で移動するときは、常にLive CDから起動し、ddを使用してパーティション全体をコピーします。私はこれがディスクサイズの変更を処理しないことを認識しています(必然的に新しいディスクは大きくなり、物事を簡素化します)。cpioの使用に懸念がある理由から、この手法が好きです:違う。 ddテクニックを使用すると、すべてかゼロかがわかります。新しいディスクが起動してすべてが同じであるか、ディスクが起動しません。後でポップアップする問題が潜むリスクはありません。

もちろん、パーティションが新しいディスクをいっぱいにしないという問題がありますが、新しいパーティションを作成して余分なスペースをいっぱいにし、シンボリックリンクに依存してディレクトリを移動したいのです。 (パーティションのサイズを変更するためのツールもあると思いますが、使用していません。)

2
Klox