Çalışan bir sistemi en iyi rsync kullanarak yeni bir sabit diske nasıl kopyalayabilirsiniz?


22

Arızalı bir harddrive'ı olan bir sunucu olarak çalışan bir sistemim var. Tüm önemli veriler bir RAID üzerinde ve yedeklenmiş ve tüm bunlara rağmen, sistemin kendisinin bir görüntüsüne sahip değilim. Elbette kurulumunu yapabildiğim için özel bir gereklilik yok, ancak geri yükleme yoluna gitmeden önce ilk önce bir hotcopy yapmaya çalışıyorum. Bunun bir süreç olarak bazı olumsuz tarafları olduğunu biliyorum, ancak orada ilk çare olarak denemenin pek dezavantajı olduğunu sanmıyorum.

  • İşletim Sistemi: Ubuntu 12.04.4 LTS
  • başsız
  • Disk zaten başarısız olduğu için çok fazla yeni yazılım yüklemeyi ummuyorum :)
  • Sistem çalışıyor. Durdurmaktan korkuyorum, diskin geri gelmemesi ihtimalini arttırıyor. Bunun anlamı dd olabilir mi?
  • Yeni disk, dd sorununu daha da zorlaştıran eski ile aynı boyutta değil (iki katı büyük).

Benim fikrim

  • sistemdeki yeni sürücüyü çalıştırma
  • dosya sistemi yapmak
  • / mnt / somedir içine monte et
  • dosyaları rsync
  • bazı fstab sihri
  • bazı çizme sihir

Hala sahip olduğum sorular:

İyi bir rsync komutu ne olurdu? Planlıyordum:

rsync -aAXx  / /mnt/somedir/ 
   --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found}

(Biraz daha fazla dir, atlıyorum, örneğin monte edilmiş baskınım vs.)

Seçenekler nerede:

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
-A, --acls                  preserve ACLs (implies -p)
-X, --xattrs                preserve extended attributes
-x, --one-file-system       don't cross filesystem boundaries

Süreci hızlandırmak için özellikle -H, -v ve --progress öğelerini atlıyorum.
Bu Ubuntu için işe yarar mı? Ubuntu herhangi bir hardlink kullanıyor mu emin değilim, fakat seçeneğe ihtiyacım olduğunu sanmıyorum, değil mi?

Bu çalıştırmadan sonra yeniden başlatılabilir (belki canlı bir usb sürücüyle) ve eski disk hala başlarsa rsync'i yeniden çalıştırabilirim. Sanırım sistem çalışıyordu çünkü okunamayan / değiştirilen dosyaları düzeltebilirdi.


Önyükleme nasıl düzeltilir?
O zaman planım /benim fstab'ımdaki UUID'yi değiştirmek (hala uuid'i nasıl bulacağımı google'a gitmek) ve sistemin yeni diskten önyükleme yapması için biraz sihir yapmak olacaktı.

Bir şey unuttum mu ya da aptalca bir şey mi planladım?

Yanıtlar:


16

blkidKomutu olan tüm blok cihazlar için UUID'yi kapabilirsiniz . (Siz sadece PARTUUID değil, UUID yazanları istiyorsunuz)

Kullandığım rsync seçenekleri -avhPHAXx.

-V ya da - ilerlemenin çok yavaş bir konsol / tty olmadığınız sürece hiçbir şeyi hızlandıracağını sanmıyorum.

-X kullanmak, hepsinin farklı dosya sistemlerinde olduğunu varsayarak (sistemimde, kayıp + bulunanlar hariç) tüm dışlamalardaki gereksinimi ortadan kaldırır.

Bildiğim ve sık sık kullandığım ve sık sık kullandığım program (en azından sistemimde) git, bu yüzden -H seçeneğini ekliyorum. -H'yi kullanmayacağınızı düşündüğüm tek sorun, biraz daha fazla yer kaplaması.

Önyükleyiciye gelince, eğer GRUB2'yi MBR ile kullanıyorsanız, kullandığım komut şudur grub-install /dev/sda(sda'yı sizin için doğru sürücüyle değiştirin). Bu, yeni sürücüyü önyüklenebilir hale getirmelidir. Farklı bir önyükleyici veya UEFI kullanıyorsanız, yeni sürücünün düzgün bir şekilde önyüklenmesini sağlamak için google’ı kontrol ederim. Yeni sürücüdeki / boot'ın şu anda olduğu gibi aynı bölümde olması gerektiğini unutmayın (/ boot için de UUID kullanmadığınızı varsayarak), aksi takdirde fstab'ı buna göre değiştirmeniz gerekecektir.


Onları korktuğum ayrı sistemlerde bulduğuma inanmıyorum, bu nedenle dışlama ihtiyatlı görünüyor. - v hızı ile ilgili karışık şeyler okuyorum, bu yüzden orada ne yapacağımdan emin değilim;). Git iyi bir nokta, eminim / evde bundan var!
Nanne

1
Eh, / proc, / sys ve en büyük olasılıkla / dev kesinlikle / 'dan farklı dosya sistemleri / mount noktalarıdır, bu nedenle -x' e sahip olduklarınızı dışlamak için hiçbir neden yoktur. Kök dosya sisteminizin bir parçası olup olmadığından emin değilseniz, yalnızca mountkontrol etmek için çalıştırın . İçinde bulunan hiçbir şeyin elle dışlanması gerekmez.
bparker

Nasıl ve neden olduğundan emin değilim, ancak dışlamalar yine de yanlıştı. Aslında yaptığım kuru çalışmada, neden olduğundan emin değillerdi. (peki, formatı yarı rastgele bir yerden kopyaladım, bu yüzden sebebi olabilir mi?). Her neyse, tavsiyene göre -x sıkıca yerinde olduğunda, çok fazla endişelenmedim, sadece asıl önemli olan bazı önemli şeylerin (örneğin eski yedeklemeler) de kaydedilmiş olmasıdır.
Nanne

Bu benim bir $$ kurtardı. Yeni düğüme geçmek için Linode'daki 12GB + sistemi klonladım. 5+ yıl sonra, bu hala çalışıyor. Teşekkürler beyler!
geeth

Bu yüzden, klonlanmış dosya sistemini bölümleri klonları kabul etmeye hazır hale getirirken, kök bölümüm önyükleme bayrağını ayarlarım mı? Aksi halde, klonlanan sürücünün önyüklenebilir olduğunu ve bunun gerçekten istenmediğini varsayardım. Benim durumumda klon sürücüm ayrı bir sunucudaki bir disktir. Ve Rsync, prod ile aynı hizada kalması için kullanılır.
NZ Dev

11

Bunu sadece birkaç kez denedikten sonra başarıyla yaptım.

kullandım

sudo rsync -ahPHAXx --delete --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found} / /mnt

Sonra /mnt/etc/fstabönyükleme bölümü için dosyamı ve takas alanımı sıfırladım .

Sonra GRUB'u sıfırlamak için gerekli

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
sudo grub-install --recheck /dev/sdX
sudo update-grub

Bunun sadece MBR formatlı diskler için olduğuna dikkat edin.
Teque5

2

Bu sürücü ile önyüklemeyi düzeltmeye çalışmayın; benim önerim:

  1. Arızalı makinede kısa devre riskini almak yerine sürücüyü başka bir makineye takın.
  2. rsync sistem dışı dosyalarınızı yeni diske yerleştirin.
  3. Ayrı bir sabit diskte, bir önyükleme, en az bir kök ve bir takas oluşturun. İstenmeyen sabit diskten klonlamak istediğiniz aynı işletim sistemini kurun.
  4. Bu yeni diskten önyükleme yapın (ideal olarak ayrı bir makinede, hedef ana bilgisayarda çalışmama süresini riske alamazsanız, aksi takdirde hedef ana bilgisayarı bu diskle önyükleyebilirsiniz).
  5. Doğru bağlama noktalarıyla 2. adımdan itibaren bu yeni sisteme diski yerleştirin. Şimdi sistem sürücüsünün bir klonuna sahipsiniz. (İsteğe bağlı olarak) bölümleri bu yeni diske kopyalayabilirsiniz, ancak tavsiyem diski işletim sisteminizi başlatmak için minimum gereksinim olarak tutmanızdır. Fark ettiğiniz gibi, birincil bölüm üzerinde çok fazla şey olması toparlanmayı zorlaştırıyor. Sunucunuz başsız olduğundan ağ yapılandırmasını doğru kopyaladığınızdan emin olun.
  6. Sadece ailing sistemindeki sürücüyü bu yeni disk çifti ile değiştirin (hedefi ilk önce 4. adımda başlatmayı seçmezseniz).
  7. Yeniden Başlatma.

Arıza süresini riske atabilirim, bu zorunlu olmayan bir sunucu. Sıcak geçiş için gidiyordum (temelde hot-add) çünkü bu kopya çok daha hızlı olurdu. SATA (En azından II) konuştuğumuz gibi düşündüğüm çok fazla risk olmamalıydı. Bunun dışında, fazladan bir önyükleme diski önermenin nedeni nedir? Bu, önceden kurulmuş bazı yazılımlar, homedir'ler, vb. İçin sorunları karmaşıklaştırmaz mıydı? Kaçınılmaya çalıştığım daha çok iş gibi geliyor: D
Nanne

Üretimde kullandığım şey; / Home, / etc, / var, / usr ve / harici diskleri (aslında LVM'de) ve / ve / önyüklemeyi ayrı bir diskte takarım. Bu şekilde, ana disk arızalandığında endişelenmeme gerek yok, sadece hizmetlerimı etkilemeden değiştiriyorum :) Başlangıçta biraz çalışıyorum ama sizi uzun vadede kurtarıyor. Özellikle bir bölümdeki alanınız tükendiğinde ve aksama süresi olmayan bir birime eklemeniz gerektiğinde.
Burhan Khalid,

İyi bir noktaya değinirken, şu anda sahip olduğum bir gereklilik değil :). Sistemde başka birkaç disk var (yaklaşık 7) ve çizgiyi bir yere çekmek zorundayım; D. Yani işletim sistemi şu anda bölmeye ihtiyaç duymuyor. Demek istediğim: Sistemin iyi olduğunu kabul ediyorum, şu an aradığım bir şey değil; D. Yani hepsini 1 diskte bırakırsam, dış kopyalamam gerçeği ciddi şekilde yavaşlatır, değil mi?
Nanne

Dış arabiriminize bağlı olarak, ethernet üzerinden hızlı, USB 2 üzerinden daha hızlı, USB 3'te daha hızlı olması gerekir. Çok yavaş yapmaz - tabii ki yazılı olan dizinleri (örneğin, / tmp, yine de gerekmeyen) kopyalamayın veya herhangi bir yere yazılanları kopyalamayın.
Burhan Khalid,

0

Bir Centos Freepbx dağıtımında rsync ve önyüklenebilir yeni bir diske sahip olmak için çok zaman harcadım ve sonunda fstab ve grub UUID'i düzelttikten sonra çalışmaz.

Çalışması için son adım

dd if=/dev/sda of=/tmp/mbrsda.bak bs=512 count=1
dd if=/tmp/mbrsda.bak of=/dev/sdb bs=446 count=1
grub

Grub CLI'deyseniz (örneğin, grub>istendiğinde):

device (hd0) /dev/sda
device (hd1) /dev/sdb
root (hd0,0) 
setup (hd0) 
root (hd1,0)
setup (hd1)
quit

Basın enterve şimdi kapatabilirsiniz, eski diski çıkarın ve yenisiyle önyükleyin.

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.