Linux'u başka bir bölüme nasıl taşıyabilirim?


9

(/ İçinde yer alan ve / mnt / sdb5 içinde hazırlanan yeni bir yer), / dev; olur cpioek sihirli uygulamadan bu işin üstesinden?

Şu anda bilinen önlemler:

  • kopyanın önyüklenebilir olduğu ve üzerinde çalışıldığı ana kadar çalışan sistemi kaldırmayacak / değiştirmeyecek root=/dev/sdb5; çıkarmadan önce, tam bir bölüm yedeği alın.
  • her kök dizini ayrı ayrı arşivlemek için cpio kullanacak, böylece LiveCD ortamından paketini açacak, böylece donör bölümü zarar görmeyecek

Ama yine de, cpio bazı bayrağı kaçırdığı ve izinleri / düğüm tipi / yumuşak veya sabit bağlantıyı sakladığı için zaman kaybetmeyecek.

Hangi araç kullanılacak / kaçınılacak su altı kayaları?



@warren, teşekkürler. şimdi başka bir cpio-vs-tar testi
yapacak

endişelenmeyin: umarım yardımcı olur :)
warren

Yanıtlar:


10

Şununla ilgili asıl soruyu cevaplamak için cpio: Bunlar için kullanacağım bayraklar cpio:

find / -xdev -depth \! -path ./lost+found -print0 | cpio --pass-through --null --dot --make-directories --unconditional --preserve-modification-time --sparse /mnt/sdb5

Tabii ki, ağ üzerinden kopyalama yapmadığınız için şunu kullanırım cp:

cp --archive --sparse=always --verbose --one-file-system --target-directory=/mnt/sdb5 /

Ve kopyalamayı birkaç kez yapmak istiyorsanız rsync, sürdürme yetenekleri için daha iyi bir seçimdir. (Ayrıca, cpACL'leri ve genişletilmiş öznitelikleri işler ve isteğe bağlı olarak ağ üzerinde çalışabilir cpio. Bu nedenle, kullanmayı tercih ettiğim ilk kopyayı yerel olarak yapmak dışında en kullanışlı seçenek cp.)

rsync --archive --inplace --hard-links --acls --xattrs --devices --specials --one-file-system --8-bit-output --human-readable --progress / /mnt/sdb5

Kopyalamayı unutma /bootve /dev!

/bootkolaydır, kopyalayın. Ancak /devgünümüzde gizlendiği için çok daha hileli udev. Aşağıdaki prosedürü öneririm:

  1. mkdir /tmp/dev
  2. mount --move /dev /tmp/dev
  3. Kopya /deviçin /mnt/sdb5yukarıdaki komutlardan birini kullanarak
  4. mount --move /tmp/dev /dev
  5. rmdir /tmp/dev

6

@Klox'un belirttiği gibi, aynı boyuttaki bölümleri kopyalarken kullanmayı kabul ediyorum dd.

Ama bir diski farklı boyutta farklı bir bölüme kopyalamak istediğinizde, onunla gitmek istiyorum rsync. Yeni bölümü bağlayın (diyelim ki, / mnt / new) ve:

# rsync -a --exclude=/proc --exclude=/dev --exclude=/sys / /mnt/new

Symlinks için ek bir sihir ve canlı cd'ye gerek yok (tek kullanıcı / init 1 gayet iyi olacak).


Ahh, evet. Her rsynczaman kullanıyorum ve bariz olanı kaçırdım. ddBelirttiğim nedenlerden hoşlanıyorum , ancak rsyncOP'nin ihtiyaçlarına daha uygun.
Klox

3

ddKullanmak için en uygun varyant, partimageyalnızca bölümün kullanılan bölümünü kopyalar, kullanılmayan büyük bölümlerin kopyalanmasını daha uygun hale getirir.

Önemli uyarılara dikkat edin:

Partimage, yeni Ubuntu kurulumlarında varsayılan olan Ext4'ü DESTEKLEMEZ.

System Rescue CD dağıtımında uygun bir kopya bulunur .


2

Linux kurulumlarını sabit sürücüler arasında taşırken, her zaman bir Canlı CD'den önyükleme yaparım ddve tüm bölümü kopyalamak için kullanırım . Bunun disk boyutundaki değişikliklerle uğraşmadığını biliyorum (kaçınılmaz olarak yeni disk daha büyük, bu da işleri basitleştiriyor), ancak tekniği tam olarak kullanmakla ilgili endişelerinizden dolayı hoşuma gidiyor cpio: bir şeyler ters gidebilir. Tekniği kullanarak, ddhepsi ya da hiçbir şey: ya yeni disk önyükleme yapar ve her şey aynıdır ya da disk önyükleme yapmaz. Daha sonra ortaya çıkan gizlenme problemleri riski yoktur.

Şimdi, elbette, bölümün yeni diski doldurmaması sorunu var, ama sadece fazladan alanı doldurmak ve dizinleri hareket ettirmek için sembolik bağlantılara güvenmek için yeni bir bölüm oluşturmak istiyorum. (Eminim bölümleri yeniden boyutlandırmak için araçlar da var, ama ben onları kullanmadım.)


Bahsettiğim sistem, 500 gb XFS bölümünde (yaklaşık daralan, şu anda sadece büyüyen yoluyla destekleniyor xfs_grow) yaklaşık 50 konsere sahip ve kök bölüm de XFS; daha da kötüsü, neredeyse o şişmanın kendisi olan köklü bir Gentoo. Daha da kötüsü, hamle daha fazla depolama alanı eklemeden yapılmalıdır ve şu anda 60 konserden fazla yedekleme yapamamaktadır - bu yüzden bölümleme işlemi yapılmamaktadır. Bazı şeyleri test etmek için Win'i o makineye koymanız gerekiyor.
kagali-san

Ayrıca, dd güzel, ama sürücü / bölme işlemleri için daha fazla .. eğilimindedir .. tescilli çözümler. Acronis TrueImage daha iyi çalışıyor gibi görünüyor (sıkıştırma, samba paylaşımları - livecd / liveusb flash).
kagali-san
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.