注:私はLinuxについてもっと学ぶためにこれをやっています。単純なインターフェースとして使用できる他のツールがあることを知っています。
注:私はFedora 23を使用しています。 SSDに物理的にインストールし、目標はそれを仮想マシンに移動することです。
以前はtarで成功しましたrsync
。rsync
全体のファイルシステムをext4
。その後、鉱山を更新し、fstab
grubを再インストールし、grub構成ファイルを生成し、最後に次のようにinitramfs
新しいファイルを作成しました。dracut
これで、システムバックアップを単一のアーカイブファイルに保存して圧縮できるようにtarを使用したいと思います。
次のコマンドを使用してtarを生成します。
tar -czpf /path/to/backup.tar.gz /path/to/fs/
アーカイブ中のFSへのパスは、一時ディレクトリに同期しているファイルと同じです。proc, dev, sys
などのフォルダは含まれません。
次にlivecdを使用して仮想マシンを起動し、パーティションをマウントし、次を使用してroot
tarをユーザーとして抽出しました。
tar -xzpf /path/to/backup/file -C /path/to/new/partition
rsyncで同じファイルを更新すると、再起動してログイン画面に移動します。ただし、root(ttyを使用)または私のユーザーとしてログインしても機能しません。ただログイン画面に戻ります。ログインループに閉じ込められました。
私はtarが所有しているファイルを抽出するときにamoghrabi
ユーザーをに置き換えることを発見しました。これは、tarがユーザーと一致するためにliveuser
ファイルシステムのファイルを使用するためです。passwd
ユーザー名が見つからない場合は、UID
と一致しますGID
。
passwd
可能な解決策として、ライブシステムのファイルとgroup
ファイルを元のファイルシステムのファイルに更新してみました。これはうまくいきません。
flagの使用について読みましたが、私の場合、livecdファイルシステムのファイルに復元しているシステムの元のユーザーが含まれていない--same-owner
ため、機能しません。passwd
rsyncを使用するなど、システムを正常に復元するにはどのようなオプションが必要ですか?
編集する:
混乱を避けるために、liveCDから起動し、/dev/sda1
バックアップを復元したいパーティションをマウントしました。そのパーティションにバックアップを抽出し、ルートを変更して(まだliveCD環境で)ファイルを変更し、再インストールし/etc/fstab
、grub
再構築しました。initramfs
バックアップの解凍プロセスを完了した後、/dev/sda1
私のバックアップのユーザーはもはや自分のファイルを所有していないようですamoghrabi
(つまり、/home/amoghrabi/
ファイルが所有しています。これは、liveCDのファイルがすでに同じUIDを持っているliveuser
ためだと思います) 。/etc/passwd
1000
amoghrabi
この状況で私は何ができますか?バックアップを解凍する前に、ファイルをliveCD環境に復元してみました/etc/passwd
。これにより、/etc/group
ユーザーのホームディレクトリが属する問題が解決されましたが、まだログインループに閉じ込められています。これは、解凍プロセス中に正しい権限がないためと考えられます。amoghrabi
amoghrabi
私の究極の目標は、起動して/dev/sda1
システムの作業コピーを作成し、それを使用してtar
バックアップを保存することです。
ベストアンサー1
--numeric-owner
アーカイブを作成するとき、またはアーカイブを抽出するとき(またはその両方)、オプションをtarに渡します。これにより、抽出しているシステムのユーザー名に関係なく、ファイルがアーカイブされたときと同じUIDとGIDを使用してファイルが抽出されます。他のデータベースと一緒にユーザーデータベースを復元するため、これらのファイルは最終的に復元されたシステムの正しいユーザーによって所有されます。
Live CDから復元されたバックアップを見ると、ユーザーが別の名前で表示されるのは正常です。ファイルシステム内のユーザーを識別するのは、ユーザー名ではなく数値ユーザーIDです。ユーザーIDは、liveuser
実際のユーザー範囲の最初の数字です。amoghrabi
インストール中またはインストール後に作成された最初のユーザーの場合、ユーザーIDは同じ数字にすることができます。 FedoraはUID 500で始まったと思うので、その中のファイルは/home/amoghrabi
UID 500が所有しています。 Live CDを見ると、ユーザー500の名前はですliveuser
。元のシステムか復元されたシステムかを判断すると、ユーザー500の名前はですamoghrabi
。
Live CDから復元されたバックアップを使用するには、chroot以上の作業を実行する必要があります。複数のファイルシステムをマウントする必要があります(chrootに加えてrootとして実行)。
mount --rbind /dev /media/sda1/dev
mount --rbind /proc /media/sda1/proc
mount --rbind /sys /media/sda1/sys
mount -t tmpfs tmpfs /media/sda1/run
mount -t tmpfs tmpfs /media/sda1/tmp
GUIログインでGUIセッションを実行するには、chrootでディスプレイマネージャを起動します。 chrootでいくつかの追加サービスを開始する必要があるかもしれません。これについてはよくわかりません。