私のシステムドライブを大きなドライブに交換したいと思うし、デフォルトのオペレーティングシステム(OpenSUSE)またはWindows(ほとんど使用されていない)を再インストールしたくありません。 Windows と Suse のインストールに時間がかかるようで、Suse のインストールの基本設定とカスタマイズを再構築したくありません。
他の起動可能なシステムはテスト用に一時的であるため、損失はわずかです。私のシステムはBIOSブートでMBRディスクを使用し、ブートローダの最初のディスクMBRでGRUB2を使用します。LABEL=
代わりにすべてのGRUBセクションが使用され、UUID=
これは問題ではありません。繰り返しますが、私の/etc/fstab
目的に応じてLABEL=
UUIDを変更または複製することは問題ではありません。使えると信じていますケレンジラライブWindowsパーティションを移行します。パーティションを同じサイズと同じ場所に保持します。 Clonezillaを正しく理解すると、そのレプリカのUUIDは同じであるため、Windowsしてはいけない何が起こっているのかを知っているか、少なくとも気にするほどではありません。
私の質問や懸念は次のとおりです。
- GRUBをMBRにインストールするとパーティションが変わるため、直接複製できないようです。
- SuseのインストールではBTRFSを使用し、ルートパーティションをさらに大きくしたいと思います。
- また、Suseパーティションのサイズを増やしたいです
/boot
(まれに、より多くのスペースが必要な場合もあります/boot
)。 partclone
BTRFSファイルシステムとドライバがインストールされているライブUSBディストリビューションが見つかりませんでした。- ただ一度撮りたいです。
私の理解は、partclone
BTRFSシステムを複製するにはシステムがオフラインである必要があることです。 Clonezilla Liveはとにかく起動可能なシステムなので、この方法でなければならないことを知っています。すべてのデータはオペレーティングシステムの移行に関連していない他のディスクにあるため、データの損失は問題になりません。
ツールを見つけましたが、btrfsクローンこれにより、プロセスが簡素化され、成功の可能性が高まります。私はそれをテストし、ライブシステムを複製しました。このプロセス中にシステムをかなり静かに保つことをお勧めします。同様に、パーティションのUUIDは、独自のパーティションのみを表示できるWindows以外のすべてには関係ありません。
質問の短いバージョンは、既存のシステムを新しいディスクに複製し、ケーブルを交換するときに起動可能にするために、新しいディスクとパーティションでどのような手順を実行する必要がありますか?
追加の注意事項として既存の問題これが正しいようです。私の関心事は、rsync
BTRFSシステムを使用するとすべてのスナップショットを取得できず、システムが新しいシステムで「そのまま」になるわけではないということです。btrfs-clone
代替を使用するだけで、rsync
すべての問題を解決できます。これが私の主な(唯一の)デスクトップシステムなので、すべての作業を一度に実行したいと思いました。
答え1
これを完了しなければならなかったので、私が望んでいた理想的な状態ではなくても効果があると確信するプロセスを使用する必要がありました。誰かがより良い答えを得るまで、後続のユーザーのために私がしたことにうまく答えます。
最初の問題の説明には、BIOSブートが使用されており、ディスクがDOSまたはMBR形式に分割されているという情報が含まれています。したがって、UEFIブートまたはGPTパーティションの使用によって引き起こされる可能性のある合併症はここでは考慮されません。
注:ほとんどすべての重要なプロセスにはroot権限が必要です。 rootとしてログインするか(このオプションは一部のディストリビューションでは利用できません)、スイッチをrootとして使用するかsudo su
、各コマンドの前にsudo
。ここでの仮定は、最初の2つのオプションのいずれかを使用して、すべての操作がrootとして実行されることです。すべてのコマンドは、ユーザーアカウントではなくルートアカウントで実行されたかのように作成されます。
これには次のものが必要です。
- 既存のシステムが稼働しています。
- システムにアクセスできる2番目のディスク、HDDまたはSSD(内部またはUSB経由)
- 起動可能なバージョン(CDまたはUSB)クロニズラライブ
- リアルタイム展開またはリカバリモードエントリ機能を備えたUSBドライブ用の起動可能ディスク。
最後のエントリが同じまたは非常に似たカーネルレプリカを使用するシステムバージョンである場合は、これが最善です。どのツールを選択しても、chroot
新しいシステムをインストールして使用できる必要があります。 USBドライブにCDやその他のツールは必要ありません。
1. 関連ディスクの名前を確認します。
を通じて走ったmount | grep '/dev/sd'
。現在マウントされているすべてのパーティションが表示されます。 BTRFSファイルシステムの場合は、質問に示すように、特定のパーティションに対して複数のマウントポイントを一覧表示できますon / type btrfs
。ルートを複製する過程で、そのパーティションも複製されるため、これらのパーティションはすべて無視できます。別の物理ディスクからマウントされ、移行後もそのディスクが残っている場合は、別のパーティションをスキップすることもできます。
また、必要ですが、見つけるのが難しいのは、Windowsがインストールされているパーティションです。通常、Windowsが最初にインストールされている場合は、Windowsパーティションである可能性が高くなります/dev/sda1
。特に、Linuxシステムもそのパーティションにある場合はさらにそうです/dev/sda
。
見つけるべき一般的なパーティション/home
はとです/boot
。
2. 新しいディスクに必要なパーティションを作成します。
新しいディスクをUSB経由で接続できる場合は、作業が簡単になります。
- ディスクが接続されていない状態でコマンドを実行する
lsblk
- ディスクを接続して
lsblk
2回目の実行 - 2番目のリストのデバイスは、最初のリストのデバイスではなく、使用されるデバイスです。
注:このプロセス中にいつでも再起動して複数のUSBディスクが接続されていると、デバイス名が変更される可能性が高くなります。続行する前に、必ず正しいデバイス名を確認してください。そうしないと、どこかでデータが失われる可能性があります。
使用されるツールは個人的な選択であり、好みによって異なります。ほとんどのシステムで一般的に使用できる一部のオプションには、、、、、parted
などがあります。gparted
cfdisk
fdisk
gdisk
パーティションの作成後に実行し、システムpartprobe
が新しいパーティションを「認識」していることを確認します。一部のツールはこれを行う必要があることをカーネルに通知し、一部のツールはそうではありません。自分で行うと、実際に完了することが保証されます。
コマンドを再度使用して、パーティションが作成され、カーネルで表示できることを確認してくださいlsblk
。
3. 新しいパーティションに Linux ファイルシステムを作成します。
BTRFSルートパーティションはmkfs.btrfs
このコマンドで作成でき、作成およびパーティションmkfs.ext4
化に使用できます。便宜上、新しいディスクにスワップパーティションがある場合は、このコマンドを使用して新しいスワップパーティションを準備できます。/boot
/home
mkswap
4. BTRFSルートパーティションをクリーンアップして、レプリケーション操作にかかる時間を短縮します。
システムのスナップショットを一覧表示snapper list
し、できるだけ削除を使用してくださいsnapper delete <number>
。したがって、ロールバックオプションは非常に制限されます。システムが複製されると、システムは安定した状態になる可能性が高く、以前の状態にロールバックする必要はありません。
BTRFSファイルシステムでバランス操作を実行します。完全なバランスをとるには非常に時間がかかることがあります!特定のパーセント未満の使用率を持つブロックのバランスを取ることに制限することで、待つ時間を短縮しながら多くの作業を完了できます。システムがどれほど汚れているかに応じて、50%が忍耐の限界である可能性があります。私のシステムはしばしばバランスをとるため、より高い割合(90%)を使用でき、許容できる時間がかかります。この-dusage
オプションは、バランス操作を指定されたデータブロック比よりも少なく使用するように制限します。
私のシステムでは、コマンドは次のようになります。btrfs balance start -dusage=90 /
5. マウントポイントを作成し、複製用の新しいパーティションをマウントします。
ルートパーティションはすべてのケースで明らかです。また、必要なものは分割/home
です/boot
。
6. BTRFS以外のファイルシステムの複製
このコマンドは、コピーされたファイルの所有権と権限を保存するために使用できるため、rsync
単純なコマンドよりも優れています。プロセスが中断されたら再起動することもできます。cp
rsync
例は次のとおりです。rsync --archive -hh --hard-links --partial --info=stats1 --info=progress2 --modify-window=1 --one-file-system /boot/ /boot2/
7. レプリケーションルート、BTRFS、パーティション
これbtrfs-clone
プログラムは私が信頼することを決めたツールです。この記事では、使用されているスペースの面で最良の結果が「作成」戦略から得られることを示唆しているので、これは私が選択した戦略です。
コマンドは非常に簡単ですが、これを行う方法は次のとおりです。btrfs-clone --strategy generation / /mnt
手術は少し時間がかかると予想されます。
8. 「新しい」システムを修正してください
/etc/fstab
新しいシステムにインストールするパーティションの変更に対応するには、ファイルを変更する必要があるかもしれません。システム全体がまったく同じになる必要はありません。移行プロセス中にタグ名、UUID、デバイス名まで変更できます。
openSUSEの場合、問題の別の原因がある可能性があります。システム設定には、grub.cfg
メニューの特定のカーネルパラメータをハードコードするためにGRUB設定中に使用されるファイルが含まれています。ファイルには、/etc/default/grub
次のような行を含めることができます。
GRUB_CMDLINE_LINUX_DEFAULT="splash=silent resume=/dev/disk/by-label/Linux_swap quiet mitigations=auto"
注目すべき部分はまさにこの部分だresume=....
。これは、ディスク一時停止操作に使用されるスワップパーティションを指します。この行がコメントアウトされずにresume=...
含まれていて、新しいディスクのラベル、UUID、またはデバイス名が現在のディスクと異なる場合は、新しいバージョンを反映するように変更する必要があります。これは後の段階で重要になります。
9. 使用クローン属Windowsパーティションを複製します。
私はClonezillaの専門家ではありません。オプションを使用しているようです。クロネズラライブ起動可能なCDに。言語/キーボードオプションに加えて、私が従ったステップは次のとおりです。
device-device work directly from a disk or partition to a disk or partition
Expert Expert mode: choose your own options
part_to_local_part local_partition_to_local_partition
Select the source partition
Select the target partition
Options menu changes
add Reinstall grub on target hard disk
drop Automatically adjust geometry ...
drop sfdisk uses CHS ...
drop Resize filesystem ...
add No GUI ...
add Remove NTFS volume dirty flag ...
-sfck Skip checking/repairing source file system
-p choose Choose reboot/shutdown/etc when everything is finished
完了すると、Windowsパーティションが複製され、GRUBが完了します。可能MBRに追加します。
10. 既存のディスクを新しいディスクに交換する
それがまさに運動のポイントです。既存のディスクをマウント解除し、新しいディスクをインストールします。両方のディスクがマウントまたは接続されたままになっていると、その後システムが混乱する可能性があります。あるいは、2つのディスクを使用して新しいディスクを起動ディスクとして使用する場合は、新しいUUIDとラベルを提供するために不要になった古いパーティションを変更または再フォーマットする必要があります。
11. 起動プロセスを再構築します。
私の実験によると、ClonezillaがMBR(存在する場合)に追加するブートローダは不完全です。上記の設定により、古いシステムバージョンはinitrd
特にopenSUSEの新しいシステムと互換性がない可能性があります/etc/default/grub
。最後に、grub.cfg
ファイルには新しいシステムと互換性のない要素を含めることができます。前のステップが正常に完了したら、3つのステップをすべて変更するのは簡単なプロセスです。
ライブディスクを実行し、必要に応じて回復オプションを選択します。 UbuntuなどのLive CDを使用している場合は、Liveシステムに移動して端末を開くことができます。ライブシステムで端末を使用するには、sudo su
root 権限が必要です。ほとんどのシステムでは、回復モードはすでにルーティングされています。
以下では、ディスクに/dev/sdx
次のパーティションがあるとします。
/dev/sdx1 Windows
/dev/sdx2 `/boot`
/dev/sdx3 `/`
/dev/sdx4 swap
パーティション番号とデバイス名もシステムによって異なり、状況に応じて次の手順を変更する必要があります。
ステップ
- 作業ディレクトリを作成します。通常
/mnt
、すでに存在する可能性があります。 - 新しいシステムのルートパーティションをマウントします。
mount /dev/sdx3 /mnt
- 新しいシステムのブートパーティションをマウントします。
mount /dev/sdx2 /mnt/boot
- 既存システムのプロセスを新しいシステムに接続する
for item in proc sys dev run; do
mount /$item --rbind /mnt/$item
done
- マウントされたシステムに切り替える
chroot /mnt
- 新しいシステムが通常マウントする別のパーティションをマウントします。
mount -a
- 新規
initrd
mkinitrd
- MRBへのGRUBのインストール
grub2-install /dev/sdx
- 新しく作成
grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg
- 終了して
chroot
再起動
exit
reboot
- ライブまたはリカバリシステムのあるUSBドライブディスクを取り外します。
- 新しいディスクがWindowsおよびLinuxシステムで起動できることを確認してください。