Di Windows: apakah aman untuk melakukan robocopy untuk mengkloning sistem?

16

Biarkan saya mulai dengan memberikan sedikit latar belakang. Pada sistem Linux, saya sering mengandalkan fakta bahwa selama saya bisa mendapatkan semua file dari satu hard drive ke yang lain, dan selama saya memperbaiki boot loader, saya akan dibiarkan dengan identik, dapat dibooting, sepenuhnya sistem fungsional. Hal yang sama berlaku untuk pencadangan dan pemulihan (tidak diperlukan cadangan status sistem khusus, hanya file) ... bahkan MySQL dapat dipulihkan kadang - kadang bahkan ketika tidak dibekukan pada saat pencadangan

Di Windows, saya tidak pernah beruntung dengan mengkloning sistem dengan melakukannya di tingkat file. Saya selalu membutuhkan alat seperti VMWare Converter, Ghost, diXML dll. Mereka didasarkan pada pengambilan gambar dari drive secara keseluruhan. Pada awalnya saya berasumsi bahwa ini terutama karena cara khusus / ajaib windows melakukan pendaftaran dan saya tidak mempertanyakannya (itu berhasil). Sampai hari ini. Saya menyadari bahwa pemikiran seperti ini bodoh, dan pada kenyataannya Windows juga hanya kumpulan file. Jadi sebagai ujian saya mengambil drive server Windows 2003 offline, saya menyalin file ke hard drive kosong, membuat drive aktif dan .. itu bekerja dengan sempurna!

Atau apakah itu? Mengapa saya memiliki ketakutan irasional ini bahwa itu akan gagal hanya karena itu bukan klon kata demi kata seperti yang saya harapkan dengan Ghost? Haruskah aku takut? Kenapa begitu mudah? Apakah server AD berbeda? Apakah ada kasus di mana metode ini akan gagal?

Jika file-by-file copy adalah cara untuk pergi, mengapa ketika saya mencoba untuk melakukan hal yang sama dengan VSS (mengekspos bayangan disalin C: drive sebagai drive S:) pendekatan yang sama gagal. Lebih khusus lagi saya mendapatkan sistem booting sampai ke layar login. Bahkan menerima kata sandi saya, tetapi kemudian segera keluar pengguna saya tanpa kesalahan dalam GUI. Saya bahkan mencoba mematikan semua layanan yang tidak dapat dihentikan sebelum menyalin ... hasil yang sama.

Ngomong-ngomong, saya menggunakan robocopy /E /SECuntuk semua operasi penyalinan ini

Apakah saya hanya mencari masalah dengan menggunakan metode ini? Saya tahu bahwa Ghost dll terbukti .. jadi mengapa menciptakan kembali kemudi? ... Saya mendapatkan semua itu ... tetapi sebagai seorang profesional saya ingin tahu mengapa semuanya berjalan seperti yang mereka lakukan. Itu sebabnya penting bagi saya untuk mencari tahu. (Belum lagi kemungkinan langka harus melakukan pengembalian logam kosong pada sistem di mana saya tidak pernah memiliki cadangan status sistem)

ixnaum
sumber
2
Mengatasi kasus tertentu pengontrol domain: perhatikan bahwa tidak ada cara aman untuk mengkloning pengontrol domain, karena hal itu mengacaukan replikasi Direktori Aktif. Saya tidak jelas tentang perinciannya, tetapi pada dasarnya setiap DC memiliki pengidentifikasi unik yang penting untuk menjaga agar urutan perubahan AD konsisten. Jika dua DC mencoba menggunakan pengidentifikasi yang sama, seluruh sistem akan runtuh dalam tumpukan menjerit.
Harry Johnston
Selain itu, perhatikan bahwa mempromosikan server kloning ke pengontrol domain tidak aman. Jika sebuah instance Windows akan menjadi DC, itu harus diinstal melalui Windows Setup. Gagal mengikuti tindakan pencegahan ini dapat menyebabkan berbagai gejala yang sangat aneh.
Harry Johnston

Jawaban:

4

Server AD berbeda. Pengontrol Domain memiliki persimpangan direktori pada direktori C: \ Windows \ SYSVOL \ sysvol yang menunjuk ke direktori domain C: \ Windows \ SYSVOL \:

 Directory of C:\Windows\SYSVOL\sysvol

04/13/2011  01:22 PM    <DIR>          .
04/13/2011  01:22 PM    <DIR>          ..
04/13/2011  01:22 PM    <JUNCTION>     domainName.acme.com [C:\Windows\SYSVOL\domain]

Hampir semua jenis operasi penyalinan manual akan menghasilkan SYSVOL yang tidak online karena persimpangan borked. Meskipun harus akurat, ini dapat terjadi dalam skenario pemulihan normal, sehingga selalu disarankan untuk memeriksa dan membuat kembali persimpangan SYSVOL jika perlu.

Berbicara tentang tautan, sistem Windows 2008 / Vista / Windows 7 apa pun dapat memiliki ribuan tautan di folder% SYSTEMROOT% \ System32 untuk binari. Target tautan ini sebenarnya berada di folder% SYSTEMROOT% \ Winsxs.

Saya belum mengonfirmasi hal ini, tetapi Robocopy dapat menyalin target alih-alih tautan. Yang akan menjelaskan switch / SL :: "salin tautan simbolik versus target".

Mungkin sistem tampak berfungsi dengan benar, tetapi apa yang akan terjadi ketika saatnya melakukan aktivitas pembaruan sistem, yang perlu memelihara file di mana target tautan biasanya berada? Mungkin itu akan menciptakan kembali mereka, tetapi itu akan menjadi sesuatu yang layak untuk diuji.

Jika Anda penasaran bagaimana tautan ini ditransfer ke disk yang disalin, Anda dapat mengambil snapshot sebelum dan sesudah, kemudian membandingkan file menggunakan Windiff atau Notepad ++.

Anda dapat menggunakan perintah berikut untuk mendapatkan output titik persimpangan pada drive:

dir C:\ /aL /s  >> junctions.txt  

Anda dapat menggunakan skrip berikut dalam file untuk mendapatkan output dari tautan untuk lokasi (misalnya, systemroot):

for /r %systemroot% %%i in (*.exe,*.dll) do (
  echo Checking file: %%i >> file.txt
  fsutil.exe hardlink list "%%i" >> file.txt 2>&1
  echo . >> file.txt
)
Greg Askew
sumber
Kamu benar. Persimpangan poin adalah masalah utama. Dari melakukan penelitian lebih lanjut tentang ini, bukan hanya server AD yang menggunakan persimpangan. Windows 7 juga sangat menggunakannya. Robocopy tidak tahu cara menyalin persimpangan "Robocopy mungkin mengalami persimpangan ... Ini mungkin Volume Mount Points yang dibuat menggunakan perintah MOUNTVOL, atau Tautan Direktori yang dibuat menggunakan perintah LINKD. Robocopy menangani Persimpangan di sumber dengan membuat Direktori normal dari nama yang sama di tujuan, karena mungkin tidak mungkin mereplikasi Persimpangan di tujuan. " ... Apakah ada alat penyalinan file?
ixnaum
di sini adalah lebih detail tentang robocopy gagal untuk menyalin persimpangan pada Windows 7. fastcopy konon dapat menyalin persimpangan ... akan mencoba yang berikutnya
ixnaum
1
Masalah potensial lain, Windows 7 (mungkin 2008 juga) memiliki persimpangan melingkar di setiap folder profil pengguna di bawah C: \ users \ <user> \ AppData \ Local \ untuk "Data Aplikasi". Jika Anda menjalankan Robocopy menggunakan akun dengan hak istimewa Cadangan, atau mengubah izin folder, dimungkinkan untuk masuk ke loop tak terbatas pada persimpangan itu.
Greg Askew
7

Saya telah melakukan klon tingkat file (menggunakan ntfscloneutilitas Linux NTFS Tools ) dari Windows 2000 dan Windows XP. Saya belum mencoba ntfsclonedengan Windows Vista atau versi yang lebih baru tetapi saya tidak akan mengharapkan masalah. Saya menggunakan alat kloning file-level Microsoft ImageX, cukup teratur dengan Windows XP dan Windows 7 dan tidak ada masalah di sana. Saya biasanya tidak mengkloning komputer server, tetapi saya berharap ImageXdapat bekerja dengan baik dengan OS server.

Menyalin sistem file langsung akan selalu menjadi tantangan. Copy Volume Shadow seharusnya mengekspos sistem file diam tapi saya pikir Anda masih mengambil risiko. (Saya tidak bisa memberi tahu Anda apa yang terjadi dengan volume kloning VSS Anda yang tidak memungkinkan Anda untuk masuk. Tidak dapat melihat klon yang gagal itu benar-benar sulit didiagnosis). Saya selalu menyarankan Anda untuk mengkloning sistem yang sedang offline, jika memungkinkan.

Dengan anggapan Anda menyalin sistem file yang benar-benar diam dan bisa mendapatkan semua file yang menjadi perhatian Anda hanyalah:

  • Memiliki catatan boot master utama (MBR) dan catatan boot partisi (PBR)
  • Memiliki bootloader yang bagus

Microsoft bootsect.exedapat digunakan untuk menulis MBR dan PBR yang baik untuk Windows NT versi lama berbasis NTLDR (NT 3.5 melalui Windows Server 2003) dan versi berbasis BOOTMGR (Windows Vista dan yang lebih baru). Kloning Windows 2003 Anda harus ke disk yang memiliki PBR NT 5,2-format (sejak di-boot).

Bootloader NTLDR akan disalin dalam salinan tingkat file, yang menjelaskan mengapa salinan Windows 2003 Anda berfungsi tanpa masalah. Bootloader BOOTMGR dapat diinstal menggunakan bcdboot.exeutilitas (termasuk pada media pengaturan Windows berbasis BOOTMGR).

Saya tidak akan mengkloning komputer Active Directory Domain Controller (DC) dengan cara ini. Anda tidak ingin mem-boot klon DC di jaringan yang sama dengan DC asli karena ini sepenuhnya tidak didukung dan, kemungkinan, skenario yang tidak direncanakan.

Edit (sekarang saya punya beberapa menit di komputer sungguhan):

Alat-alat yang saya jelaskan di atas, ImageXdan ntfsclone, adalah alat-alat kloning tingkat sistem berkas (seperti halnya Ghost jika tidak dijalankan dalam mode sektor mentah). Mereka menafsirkan sistem file NTFS daripada menyalin sektor-untuk-sektor. Kedua alat tersebut tidak akan memiliki masalah dengan titik persimpangan atau hardlink seperti ROBOCOPY(tanpa /SLargumen) dan XCOPY(dengan argumen apa pun).

Secara umum, Microsoft tidak berencana untuk Anda melakukan kloning sistem berbasis tingkat salinan. Ya, Anda bisa melakukannya, tetapi jika rusak Anda bisa menyimpannya.

Evan Anderson
sumber
Tapi ntfsclone dan ImageX berbasis gambar seperti Ghost ... bagaimana dengan file-by-file copy?
ixnaum
1
ImageX tidak menghasilkan salinan disk tingkat blok, itu pasti berbasis file. (Memang, tentu saja, menghasilkan "file gambar" tetapi ini lebih seperti file zip daripada, katakanlah, iso.) ImageX adalah satu-satunya cara yang mendukung untuk melakukan ini.
Harry Johnston
4

Masalah dengan menyalin sistem file langsung dari VSSadalah bahwa contoh Windows yang ada mungkin akan memiliki tanda tangan disk baru sudah ada di registri itu. Ketika Anda mem-boot salinan, tanda tangan dari partisi itu boot dari dicocokkan dengan registri dan dipasang sebagai D:atau E:, daripada C:seharusnya.

Anda dapat mengatasinya dengan memasang file registri dan memperbarui HKLM\SYSTEM\MountedDevices Lakukan ini setelah salinan tetapi sebelum memulai kembali. Anda hanya ingin menghapus \DosDevices\C:entri dan mengubah entri untuk drive baru Anda C:.

Chris Griffiths
sumber