Bir sistemin sıcak kopyasını oluşturmak mümkün olabilir mi?


10

Sistemimi kapatmadan yedeklemek istiyorum. Sistem klonu başka bir makinede de çalışabilmelidir.

Başka bir diskte tüm sistem bölümünü "dd" denedim, bundan sonra başlatılan hiçbir yönetim görevi olmadığından emin oldum. Sanırım gruba o diskte önyükleme yapmak zorunda kaldım, bu yüzden komutu çalıştırdım:

grub-install  /dev/sdc1 

ama bu hatayı aldım:

The file /boot/grub/stage1 not read correctly.

Yaptığımın çok temiz olmadığını biliyorum, bu yüzden hedeflerime ulaşmak için iyi bir çözüm veya grub problemini çözmek için bir fikrin var mı?


Çalıştırmaya devam etmeniz gerekiyorsa, bu aslında bir şeyler yapıyor demektir. Bu durumda, yedekleme sırasında sisteminizin içeriğinin değişeceği neredeyse kesindir. Bu, sonuçları biraz öngörülemez hale getirir - üretimde kullanmadan önce çok test edin.
Joe

Yanıtlar:


8

Her birinin ödünleşimi olan birkaç seçenek vardır. ddBir dosya sistemini okuma / yazma takılıyken klonlamak için kullanamazsınız veya kopyalama sırasında kaynak değiştirildiği için klon bozulur, böylece hedef kısmen güncelliğini yitirir ve kısmen degil. ddBir bölümü sıcak kopyalamak için gerçekten kullanmak istiyorsanız, bunu LVM anlık görüntüleri ile yapabilirsiniz . Bu, sistemi ilk önce LVM kullanarak yüklemenizi gerektirir , ancak daha sonra istediğiniz zaman bir anlık görüntü oluşturabilirsiniz ve anlık görüntü dondurulduğundan ve monte edilmediğinden dd, anlık görüntüyü güvenli bir şekilde kaldırabilir ve ardından anlık görüntüyü kaldırabilirsiniz. Diğer aşağı tarafı kullanarakddbirimdeki kullanılmayan tüm alanların kopyalanması için zaman harcar ve kaynağın çoğu kullanılmasa bile hedefin en az büyük olmasını gerektirir.

Kullanım yerine , anlık görüntüyü yedeklemek için veya ddgibi geleneksel yedekleme araçlarını kullanabilirsiniz . Bu, boş alanı kopyalamak için zaman kaybetmeme avantajına sahiptir ve dosyalar için yer olduğu sürece daha küçük bir bölüme geri yüklenebilir. Kısmi bir geri yükleme yapmak için yalnızca bazı dosyaları ayıklayabilirsiniz. LVM'yi bu yöntemle de kullanmanız gerekmez : yedeklemeyi yaptığınızda hiçbir dosyanın değiştirilmediğinden makul olarak emin olduğunuz sürece, bağlı bir dosya sisteminde yapmak güvenlidir. Olabilecek en kötü şey, yedekleme sırasında değiştirilen tek bir dosyanın, olabileceği gibi, tüm yedeklemenin bozuk olması yerine bozuk olacağıdır .tardumpdd

Gördüğünüz gibi, dosya sistemini geri yükledikten sonra, sistemin önyüklenmesini sağlamak için grub'u yeniden yüklemeniz gerekir. Denediğinizde neden bu hatayı aldığınızdan emin değilim, ancak grub2'nin bir sahne1'i olmadığından grub-legacy kullandığınız anlaşılıyor.


LVM kullanmadım, ancak dayanıklı bir çözüm arıyorum. (proc hariç) tüm sistem ağacını kopyalayıp gruba değişiklik yapmak yeterli midir?
Gaël Barbin

@Gael, tüm dosyaları kopyalamak ve grub'u yeniden yüklemek yeterlidir, evet. / Etc / fstab içindeki UUID'leri de güncellemeniz gerekebilir. Kullanıyorsanız tar, yalnızca / proc değil, / dev, / sys ve / run komutlarını da hariç tutmak veya --one-file-systemanahtarın diğer dosya sistemlerine inmesini durdurmak için kullanmak istediğinizi unutmayın .
psusi

teşekkür ederim, tar ile deneyeceğim. Bu çözüm yedeklemenin tam denetimine izin verebilir.
Gaël Barbin

3

Bölümü kopyalamak rsyncveya benzeri bir şey kullanmak tardaha kolay olabilir. Bölümü /mnt, kopyadan önceki gibi ikinci bir bağlama noktasına monte ederdim . Bu seçenekler ayrıca bölüm boyutunu veya türünü değiştirmenizi sağlar. Ek bölümlerde de yapılarınız olabilir. Sık sık için ayrı bölümlere sahip /varve /usr. Bunların da dikkate alınması gerekecektir.

grubDiskin ve bölümün nasıl doğru bir şekilde hedefleneceğini belirlemek için belgeleri incelemeniz gerekebilir . install-grubistediğinizi yapmayan yanlış varsayımlar yapabilir.

mondoÜzerinde işletim sisteminiz yüklü olarak önyüklenebilir bir kurtarma CD'si oluşturmanıza izin veren araçlar vardır .


Ben dd kullanıyordum çünkü bana diğer dosya kopyalama araçlarının sadece mbr ve bölüm tablosunu değil, dosyaları kopyalayacağını söylüyordum. Mondo'ya bir bakış attım ve bu en basit çözüm olabilir. Teşekkür ederim
Gaël Barbin

@Gael Yalnızca SD1'i klonluyorsanız, MBR'yi alamazsınız. Gerekirse MBR'yi güncelleyecek bir dizi araç vardır. Normalde bir önyükleme kaydı aramak için zaten kodu vardır.
BillThor

1

Aygıt düzeyinde çalışan bir sistemin güvenilir bir yedeklemesini yapmak için gerçek bir seçenek olmadığını düşünüyorum: Dosya sisteminiz geçerli durumu donduramadığınız ve yedekleme işleminin önemli ölçüde zaman alacağı için çok bozulacaktır.

Ancak aşağıdaki seçenekleri deneyebilirsiniz:

  1. Sistemi bir VM içinde çalıştırın. Sistemin anlık görüntüsünü oluşturabilir ve ardından bu anlık görüntünün yedeğini alabilirsiniz. Yedekleme tamamlandığında, anlık görüntü kolayca atılabilir. Bu, yukarıda belirtilen sorunları çözer.
  2. Yedeklemeyi aygıt düzeyinde değil, dosya sistemi düzeyinde yapın. Bunun için rsnapshot tavsiye edebilirim.

Bir sistemi kapatmadan yedeklemek için izin veren bir çözüm arıyorum. Dolayısıyla, kullanılan yönteme bakılmaksızın, sistemin çalıştırılması gerekir. Sistemi kopyalamak için sadece dosya sistemini kopyalamak yeterliyse, rsync işi yapar, rsnapshot'ı ne getirir?
Gaël Barbin

rsnapshot, ihtiyacınız olduğu kadar çok sayıda artımlı çoklu yedekleme sağlar (saatlik, günlük, haftalık, aylık) ve yedeklemeler, artımlı olmalarına rağmen düz tam dizin yapısında kullanılabilir.
Vilmantas Baranauskas
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.