Di linux, bagaimana cara membuat / mengembalikan snapshot gambar dari seluruh drive saya?

14

Saya terlalu dimanjakan oleh utilitas Windows yang mengambil snapshot digital dari seluruh drive Anda, yang kemudian dapat Anda pulihkan jika terjadi kerusakan drive. (mis. seperti Time Machine untuk Mac OS X).

Apakah ada cara yang serupa untuk melakukan ini di Linux?

pengguna35997
sumber
1
Saya kira Anda manja di Windows dengan cara yang sama pengguna Linux dimanja dengan benar-benar memiliki utilitas sistem. :)

Jawaban:

13

Alat yang Anda inginkan (yang paling mirip dengan Time Machine) disebut rsnapshot . Tidak seperti alat pencadangan normal, ia hanya menyalin hal-hal yang telah berubah, dan memungkinkan Anda dengan mudah melakukan perjalanan ke banyak titik waktu. Anda dapat menentukan berapa banyak ruang disk yang diizinkan untuk dimiliki, dan menyesuaikan jumlah foto yang disimpan agar tetap dalam batas itu. Alat yang sangat bagus.

Norman Ramsey
sumber
6

PartImage berjalan dari baris perintah atau sebagai GUI teks. Ini memiliki satu keuntungan penting daripada dd:

Partimage hanya akan menyalin data dari bagian partisi yang digunakan. Untuk kecepatan dan efisiensi, blok bebas tidak ditulis ke file gambar. Ini tidak seperti perintah 'dd', yang juga menyalin blok kosong.

StuffMaster
sumber
6

Anda hanya dapat melakukan " dd if=/dev/sda of=/path/to/target/backup" jika Anda tahu memiliki ruangan tempat Anda mencoba meletakkannya. Anda juga bisa melakukan " dd if=/dev/sda | bzip2 > /path/to/target/backup" kompres saat itu juga. Ini mungkin memakan waktu agak lama.

Atau, Anda bisa melakukan " tar --preserve-permissions -cjf backup.tar.bz2 /what/to/backup" sebagai pengguna yang memiliki semua izin baca yang diperlukan. Ambil pilihanmu.

Tambahan: Saya baru saja membeli laptop baru, yang sudah diinstal dengan Vista. Saya pikir saya ingin melestarikan vista di suatu tempat, kalau-kalau saya ingin mencobanya di beberapa titik, jadi pertama kali saya boot komputer (dengan linux livecd), saya melakukan ini:

dd if=/dev/sda | ssh 10.0.0.1 "bzip2 > ~/vistadrive.bz2"

Ini di jaringan lokal cepat, tentu saja. Kalau tidak, akan lebih bijaksana untuk kompres sebelum transmisi:

dd if=/dev/sda | bzip2 | ssh 10.0.0.1 "cat > ~/vistadrive.bz2"

Semoga Anda menemukan beberapa ini berguna.

Edit: Ups. Diubah bbmenjadi dd...

Pianosaurus
sumber
1
Itu tidak termasuk sektor boot juga bukan? Itu selalu mengacaukan saya ketika menggunakan partimage untuk membuat cadangan drive windows.
greg, itu akan mencakup segalanya, termasuk tabel partisi dan mbr
Johannes Schaub - litb
4

Saya menggunakan strategi dua kali lipat: # 1 adalah snapshot LVM dan nomor dua adalah rsnapshot , yang saya gunakan untuk membuat backup point-in-time ke drive hard disk eksternal khusus. Hard disk drive eksternal ditempatkan sehingga saya dapat dengan mudah mencabutnya saat keluar dari pintu jika terjadi sesuatu yang buruk. Saya belum (belum) menggunakan mekanisme di luar lokasi selain secara berkala membakar snapshot ke serangkaian disc DVD terenkripsi dan mengirimkannya ke tempat teman di kota lain untuk penyimpanan.

Saya sangat merekomendasikan rsnapshot karena cara melakukan snapshot, menggunakan tautan keras untuk hal-hal yang belum berubah. Jika direktori home Anda menjadi gila, Anda bisa mengambil salinan rsnapshot dan tarpipe atau rsync kembali ke partisi rumah baru Anda setelah menginstal ulang atau memulihkan dari kegagalan drive.

Michael Trausch
sumber
3

Beberapa. Ada dd (1) kuno , yang agak misterius; ada dump (8) dan restore (8) ; ada beberapa produk sumber terbuka di sekitar, seperti Amanda ; dan jika Anda mau, Anda dapat menginstal ZFS dan menggunakan skrip cron untuk mengambil foto berkala, memberi Anda sesuatu yang secara efektif identik dengan Time Machine (lihat weblog Tim Foster.)

Wikipedia memiliki artikel dengan daftar banyak opsi .

Charlie Martin
sumber
2

Jika Anda menginginkan cadangan tingkat file seperti mesin waktu, maka saya sangat merekomendasikan rsnapshot seperti yang disarankan Norman .

Jika Anda menginginkan pencadangan gambar penuh dan mengembalikan solusi tipe, seperti hantu norton, maka saya telah menemukan CloneZilla berfungsi dengan baik. Saya mem-boot CD langsung, dan kemudian menggunakan mesin lain sebagai server SSH untuk membuat cadangan / mengembalikan gambar ke / dari.

(Saya bahkan berhasil membuat versi live bekerja melalui PXE boot untuk laptop tablet lama yang saya miliki tanpa drive CD dan tidak ada booting USB, tapi itu banyak mengutak-atik.)

Dan Anda dapat menggunakannya untuk mesin windows juga.

Evan
sumber
1

Saya selalu khawatir tentang menggunakan dd ketika ukuran drive berbeda. Atau memiliki jumlah kepala / sektor / trek / etc yang berbeda.

dd sangat berguna saat snapshotting dan memcerminkan drive yang sama. Terutama USB drive atau partisi windows. Tetapi ketika pergi dari 500Meg ke 1500Meg drive, saya khawatir.

Selain itu, ketika drive saya gagal, saya ingin dapat menggunakannya sebagai alasan untuk meningkatkan ke OS yang lebih baru.


Semua yang dikatakan, tar tua yang baik melakukan pekerjaan yang bagus! GNU-tar mencakup diff-tar-melawan-file , hanya-perbarui-file-yang-telah-berubah , dan hanya-arsip-file- opsi yang lebih baru-dari-tanggal .

(Saya harus menyebutkan: Saya mengalami bug beberapa tahun lalu yang mengharuskan saya untuk mengunduh dan menginstal versi GNU-tar yang lebih baru . (Sesuatu yang berkaitan dengan nama path yang sangat panjang dan beberapa volume.) Bukan masalah besar. itu selalu pilihan.)

Anda mungkin harus mengecualikan / proc , / sys , dan mungkin / var / log / lastlog atau / mnt . (Saya biasanya mencadangkan ke drive eksternal yang dipasang di bawah / mnt . Mencadangkan cadangan - tidak begitu bagus!)

Termasuk / dev bisa bermanfaat. gnu-tar akan menangani perangkat dengan benar ( mknod ). Meskipun Anda mungkin tidak akan menggunakan cadangan / dev selama pemulihan. (Terkadang menyenangkan melihat izin atau tautan apa yang telah Anda buat sebelumnya.)

Juga, Anda mungkin ingin membuang info fdisk & rpm sebelum mencadangkan. Misalnya

/sbin/sfdisk -l /dev/sda > /....../info_sda
rpm -qa | sort > /...../info_rpms
rpm -qa --qf "%{ARCH} \t %{NAME}-%{VERSION}-%{RELEASE}\n" | sort -k2,2 > /........./info_rpms_arch

Serta memasang sistem file yang dipasang pengguna "opsional" .


sumber
1

Inilah langkah-langkah lengkap untuk metode lain, bekerja untuk berpindah dari satu hard drive ke yang lain, dan bahkan mengkloning mesin jika perangkat kerasnya serupa.

Pertama, buat gambar sistem kerja yang baik. Lakukan ini sebagai root.

# cd / 
# tar cpzf hostname.tgz / --exclude=hostname.tgz --exclude=proc --exclude=lost+found --exclude=mnt --exclude=sys --exclude=home --exclude=usr/src

Cadangkan gambar kernel

# mount /boot
# cd /boot
# tar cpzf boot.tgz *

Boot mesin yang Anda inginkan gambarnya digunakan dengan live cd / gentoo cd. Pasang hard drive dan partisi itu dengan tepat:

# fdisk /dev/hda
/dev/hda1  /boot
/dev/hda2  swap
/dev/hda3  /tmp
/dev/hda4  /

Tambahkan sistem file

# mke2fs /dev/hda1
# mkswap /dev/hda2
# mke2fs -j /dev/hda3
# mke2fs -j /dev/hda4

Mount drive:

# mount /dev/hda4 /mnt/new_root
# mkdir /mnt/new_root/tmp
# mkdir /mnt/new_root/boot
# mkdir /mnt/new_root/proc
# mkdir /mnt/new_root/sys
# mount /dev/hda3 /mnt/new_root/tmp
# mount /dev/hda1 /mnt/new_root/boot
# swapon /dev/hda2
# mount -t proc proc /mnt/new_root/proc

Salin file hostname.tgz ke mesin ini.

Ekstrak ke root dari mesin baru / mnt / new_root

# tar -xzf hostname.tgz

Chroot ke lingkungan baru.

# chroot /mnt/new_root /bin/bash
# env-update && source /etc/profile

Verifikasi / boot / grub / grub.conf dan / etc / fstab

Setup grub pada hard drive:

# grep -v rootfs /proc/mounts > /etc/mtab
# grub-install /dev/hda

Keluar dan lakukan umount drive, reboot mesin.

deepwell
sumber
0

Anda dapat memiliki snapshot di Linux menggunakan LVM, manajer volume logis.


sumber
1
Jika Anda menggunakan LVM, belum tentu demikian. Jika demikian maka ya, ini akan menjadi pilihan yang bagus howtoforge.com/linux_lvm_snapshots
Gavin H