D:\
パーティションとすべてのデータをNTFSからext4に変換したかったのですが、インターネットから次のように指示されました。
パート4の方法がわかりません。フォルダの場合と同じように、ドライブ全体を実際にコピーできますか?これに特化したツールはありますか?システムやシンボリックリンクなどによって隠されているフォルダを見逃さないようにするにはどうすればよいですか?私はUbuntuライブUSBスティックを持っています。それが重要な場合は、そこから作業できます。
データを見逃さないようにするために、 FreeFileSync のような優れたファイルコピーツールを使用することを強くお勧めします。これはグラフィカルで、無料で、無料でオープンソースであり、クロスプラットフォーム(Windows、Mac、Linux)です。それを台無しにして逆方向にコピーして、すべてを削除しないように注意してください!ただし、グラフィカルで非常にユーザーフレンドリーであるため、正しく理解するのは難しくありません。
左側にsource、右側にdestinationを指定してフォルダを設定し、の歯車をクリックします。右上にある[ミラーリング]オプションを選択して左から右にミラーリングし、左上の[比較]ボタンを押します。何をコピーする必要があるかを決定すると、何をするか(作成、上書き、または削除するファイルの数など)を示す情報画面がポップアップ表示されます。ゴミ箱の横に何も表示されていないこと(削除する内容を示している)、またはexpectedファイルが表示されていることを確認します(ゴミ箱とマイナス記号を押してから、「同期」ボタンを押して開始します。出来上がり!使いやすい。これがスクリーンショットです:
Linuxからコピーを行う場合は、もちろんFreeFileSyncを使用することもできますが、コマンドラインの第一人者であれば、 rsync
の方がよいでしょう。これはコマンドラインのみのツールであり、使いにくいですが、双方向の同期をうまく処理できないため、FreeFileSyncほど強力ではありませんが、それでも非常に強力です。これが私のお気に入りのrsync
コマンドのいくつかです:
ソースから宛先にコピーし、競合していないものを宛先にそのまま残します。
Sudo rsync -rah --stats --info=progress2 '/path/to/source' '/path/to/destination'
必要に応じて、--verbose
、または単に-v
(または私の場合は-rahv
)を追加して、コピーされる内容の完全なリストも取得します。
必要に応じて、--dry-run
を追加して、willが発生することを示しますが、実際にはまだ実行していません。
オプションで、コピーするファイルのリスト全体をこのようなstdout.log
ファイルに記録し、エラーがあればこのようなstderr.log
ファイルに記録することもできます。ここでは、--info=progress2
を削除して進行状況インジケーターを削除します。これにより、ログファイルがどこでも進行状況情報で汚染されないようになります。
(Sudo rsync -rah --verbose --dry-run --stats '/path/to/source' '/path/to/destination' | tee -a '/path/to/stdout.log') 3>&1 1>&2 2>&3 | tee -a '/path/to/stderr.log'
実際にコピーを作成する準備ができたら、上記から--dry-run
を削除します。スクリプトを実際に実行する前に、stdout.logファイルの最後にある統計段落の印刷出力(--stats
があったために印刷された)を確認して、すべてが良好に見えることを確認してください。
以下のMIRRORオプションを実行して得られた--stats
出力の例を次に示します。一部のファイルを削除していることに注意してください。ファイルの削除は元に戻せないので、注意してください(少なくとも特別なソフトウェア回復ツールがないと)。完全に削除するであり、ある種のごみ箱などに送るのではないことに注意してください。
ファイル数:102,033(reg:89,638、dir:9,867、link:2,502、special:26)
作成されたファイルの数:3(reg:3)
削除されたファイルの数:9,861(reg:9,360、dir:474、link:27)
転送される通常のファイルの数:25
合計ファイルサイズ:8.12Gバイト
転送されたファイルの合計サイズ:35.30Mバイト
リテラルデータ:35.30Mバイト
一致したデータ:0バイト
ファイルリストサイズ:917.43K
ファイルリストの生成時間:0.007秒
ファイルリストの転送時間:0.000秒
送信された合計バイト数:38.33M
受信した合計バイト数:102万送信38.33Mバイト受信102Mバイト7.15Mバイト/秒
合計サイズは8.12Gスピードアップは206.37です
ソースから宛先へのMIRRORへ。これは、delete宛先内のnot insource(上記の統計出力の「削除されたファイルの数」行)、--delete --delete-excluded
を追加します(まだ何も除外していませんが、--exclude=PATTERN
構文について学習すると、--delete-excluded
フラグも必要であることがわかります)。
まず、safeドライランバージョン:
(Sudo rsync -rah --verbose --dry-run --stats --delete --delete-excluded '/path/to/source' '/path/to/destination' | tee -a '/path/to/stdout.log') 3>&1 1>&2 2>&3 | tee -a '/path/to/stderr.log'
そして今、危険危険危険-ソースと宛先を逆方向に実行するとすべてが削除される可能性がありますバージョン(続行する前にstdout.logの最後にある統計出力を確認してください):
(Sudo rsync -rah --verbose --stats --delete --delete-excluded '/path/to/source' '/path/to/destination' | tee -a '/path/to/stdout.log') 3>&1 1>&2 2>&3 | tee -a '/path/to/stderr.log'
そして今、ライブの進行状況と最後の統計段落を表示したいが、ログがない場合に備えて、ログファイルに保存されないバージョンstdout.logでコピーまたは削除された個々のファイル、またはstderr.logで出力されたエラーの数:
Sudo rsync -rah --info=progress2 --stats --delete --delete-excluded '/path/to/source' '/path/to/destination'
そして、これはrsyncの始まりにすぎません。マニュアルを読む:man rsync
、またはオンライン: https://linux.die.net/man/1/rsync そして、上に示したオプションの多くを組み合わせて組み合わせることができることを覚えておいてください。 。調べるべき他の本当に便利なことには、ファイルとパスのリストをそれぞれ含めたり除外したりするために、source.txtファイルとexclude.txtファイルを設定することが含まれます。これは、オプション--files-from='/path/to/source.txt'
と--exclude-from='/path/to/exclude.txt'
をそれぞれ使用して行います。これは非常に便利です。最後に、これは--relative
オプションと非常によく合います。最終的に、完全なBashスクリプトは次のようになります。
(Sudo rsync $OPTIONS $SRC $DEST | tee -a $LOG_STDOUT) 3>&1 1>&2 2>&3 | tee -a $LOG_STDERR
ここで、$ SRCはソースパスです(この場合、単に/
など、source.txtファイル内のすべてのファイルのrelatedパスすべてをルートディレクトリに相対的なものにするため)、$ DESTは宛先パス、$ LOG_STDOUTは標準出力情報をログに記録する場所へのパス、$ LOG_STDERRは標準ストリーム情報をログに記録する場所へのパスです。 、および$ OPTIONSは次のようになります。
-rah --verbose --stats --relative --info=progress2 --delete --delete-excluded --dry-run --files-from='/path/to/source.txt' --exclude-from='/path/to/exclude.txt'
そしてもちろん、上記のように、実行内容に応じて、必要に応じて--verbose
、--relative
、--info=progress2
、--delete
、--delete-excluded
、および--dry-run
を削除することもできます。