Eski bir sürücüden yeni bir sürücüye veri taşımak için DD'yi nasıl kullanabilirim?


29

Dizüstü bilgisayarımdaki dahili SATA sabit diskini 40G sürücüsünden 160G sürücüsüne yükseltiyorum. SATA kartına sahip bir Linux / Ubuntu masaüstüm var. Aslında iş yerinde bir kaç CentOS ve FreeBSD kutusu için de aynı şeyi yapmak isterdim ve bu aynı çözüme sahip gibi görünüyor.

40G bölümünü 160G sürücüye yansıtmak için DD kullanabileceğimi veya 40G bölümünü yerel sistemime bir görüntü olarak kaydedebileceğimi ve bu 40G görüntüsünü 160G sürücüsüne kopyalayabileceğimi duydum.

Bunu nasıl yapabileceğimi bilen var mı? Gparted gibi başka bir yardımcı programa ihtiyacım var mı?


3
Ahha ... Bu ilk soru!
Harshit Shrivastava

2
Bir numaralı soru! Ayrıca bu site için teklif vericiyim ve siteyi oldukça teknik bir soru ile başlatacağımı düşündüm. Bir tişört ve biraz yağma ile ödüllendirildim.
Stefan Lasiewski

Yanıtlar:


6

İlk göreviniz her iki diski de mevcut bir Linux sistemine bağlamak veya yeni diski orijinal sisteme bağlamak.

Sen olmalısın çok iyi diskin üstündeki boş disk kopyalama çok basit olduğu için dikkatli!

Önyükleme sektörlerine ve hepsine son vermek için, şöyle bir şey yapardınız:

dd if=/dev/hdx of=/dev/hdy

hdx40G diskiniz ve hdy160G diskiniz nerede . Gibi hiçbir bölüm numarası olmadığını göreceksiniz /dev/hdx1. Bu işlem tüm diski, bölüm bilgisini ve hepsini kopyalar.

Yeni diskiniz 40G ayrılmış eski disk gibi olacak. Dizüstü bilgisayarınıza yerleştirildiğinde hemen önyüklenmelidir. Umarım LVM kullanmışsınızdır? Aksi takdirde tüm bölümleri kullanmamışsınızdır? Bu noktayı geçmek çok daha fazla bilgi gerektirir.

Başka bir çözüm, her bir bölümü ayrı ayrı bırakmaktır. Önyükleme bilgilerini yeniden oluşturmanız gerekeceğinden bu durum daha fazla durum farkındalığı gerektirir.

Bütün bunlar en iyi, bilgisayarları klonlamak için kullanılır, sabit diskleri yükseltmek yerine kullanılır. Yedeklerinizi kullanarak yeni bir yüklemeye geri yüklemek çok daha iyidir.


17

Normalde "2. sabit sürücüyü harici bir muhafaza kullanarak takma, linux CD'den önyükleme yapma, ardından gibi bir komut kullanma" gibi bir çözüm öneririm dd if=/dev/sda of=/dev/sdb bs=1G, ancak aynı tekniği kullanmak istediğiniz için, ne olabilir daha iyi bir çözüm.

Clonezilla kullanarak tüm sunucu ve dizüstü bilgisayarlarım iş başında görülebiliyor . Bunu kullanmanın iki yolu vardır ... bunlardan biri özel bir sunucu kullanıyor ve muhtemelen sizin için aşırı derecede öneme sahip, diğeri ise bir önyükleme CD'si ve harici sabit disk kullanan.

Buradaki fikir, Clonezilla CD'si ile önyüklemeniz ve geniş bir (kaynak sürücüden daha büyük) harici USB sürücünüz olması. Clonezilla, mevcut sürücünün bir görüntüsünü oluşturmanıza yardımcı olur, ardından makineyi kapatır, sürücüyü değiştirir, ardından tekrar Clonezilla'ya yeniden başlatır ve verileri geri yükleyerek sizi yönlendirir.

Bu size A) görüntüyü daha büyük bir sürücüye koyma ve B) verilerini yedeklemenizi sağlar.


5

Eğer iken edebilir böyle bir disk kopyalama dd kullanın Bunu yaparken sakıncaları vardır:

  1. Hedef, kaynaktan tamamen aynı boyutta veya daha büyük olmalıdır
  2. Kopyaladıktan sonra, herhangi bir ek alan kullanmak için bölümleri yeniden boyutlandırmanız gerekir.
  3. Boş alan kopyalamak için zaman harcayacaksınız
  4. Eski diskte mevcut olan herhangi bir parçalanma korunur

Ghost4Linux, partclone veya clonezilla gibi bir görüntüleme programı kullanmak en azından 2 ve 3 numaralı sayıları dikkate alır. Ayrıca yeni diski kolayca biçimlendirebilir, takabilir ve tüm dosyaları cp -ax(root olarak) ile kopyalayabilir ve sonra yeniden yükleyebilirsiniz. yeni sürücüdeki önyükleyici. Bu yöntem yukarıdaki dezavantajların hiçbirinden muzdarip değildir.


3

Bölümü basitçe kopyalamak için kullanabilirsiniz dd if=/dev/srcDrive of=/dev/dstDriveveya bunun gibi bir şey. Adam sayfasını okumanı tavsiye ederim . Üzgünüm, daha fazla bilgi veremem, çünkü şu an işteyim.


2

Sen gg ile bunu nasıl istedi ama çıktısının daha iyi bir başarı elde etti dökümü içine geri . Kaynak ad1s1a ve hedef ad2s1a göz önüne alındığında :

$ mount /dev/ad2s1a /target
$ cd /target
$ dump -0Lauf - /dev/ad1s1a  | restore -rf -

Bunu FreeBSD'de denedim, aslında FreeBSD Forumunda buldum


1

Basit bir örnek şudur:

dd if=/dev/sda of=/dev/sdb

Ancak, bazı özel gereksinimleriniz varsa, gerçekten manpage (man gd) okumalı veya Google’da arama yapmalısınız.

Başka bir fikir rsync kullanımı olabilir (-az [gibi bir dosyayı bir başkasına kopyalamak yerine dosyaları paketler] veya --numeric-ids [gibi adlar yerine uid / gid kullanır) "root"] ve belki bazı diğerleri). Bağlantı pek çok örnek içeriyor.

Yeni HDD’de bölüm yoksa, gparted veya palimpset kullanabilirsiniz.

Emin olmadığınız zaman HDD'yi formatlar ve ardından verileri rsync ile senkronize ederim.


1

Hem buna bağlı hem de bir CD ile önyükleyerek buna benzer geçişler yaptım.

  1. İkincideki ilk diskin bölüm bilgisini yeniden yaratırsınız, muhtemelen fazladan boşluk kullanmak için bazı bölümler daha büyük hale gelir, vb.
  2. Sonra / dev / sda {1,2,3,4} 'a sahip olduğunuzu ve / dev / sdb {1,2,3,4}' e kopyalamak istediğinizi varsayalım, mkdir / mnt / sd {a, b} {1 , 2,3,4} ve her bir bölümü her bir direkte monte edin (veya tek tek yapmak istiyorsanız, bir / mnt / origin / mnt / varış yeri yapabilir ve her bir çifti mount / umount yapabilirsiniz)
  3. Sonra bir cp -avr / mnt / origin / yapın. / mnt / hedef / (veya bir cp -avr / mnt / sda1 /. / mnt / sdb1 /
  4. Web'e göz atarken bekleyin :)
  5. Grub, lilo veya hangi önyükleme yöneticisini kullandığınızı yeniden kendiniz hatırlayın.

Bu şekilde, dosyaları kopyalandıkça birleştireceksiniz, ayrıca bölümlerdeki dosya sistemlerini de değiştirebilirsiniz (reiserfs veya ext3'ten ext4'e geçiş yapın). Yeni durum

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.