/ Usr nasıl yeni bir bölüme taşınır?


26

Klasörümün /usryeni bir bölüme taşınması gerekiyor. İçeriği silmeden bunu nasıl yapabilirim?

Ubuntu çalışırken bu yapılabilir mi, yoksa bunun için LiveCD kullanmam gerekir mi?

Yanıtlar:


27

Live CD kullanmak en güvenli olur, ancak şunları yapabilirsiniz:

  • Tüm dosyaları kopyalayıp yeni bir bölüme kopyalayarak içeriğini /usrdeğiştirmeyin.
  • düzenlemek /etc/fstab, böylece /usrbir sonraki yeniden başlatma üzerine monte edilecektir
  • reboot
  • eski dosyaları sil

Her adımda ayrıntılar için aşağıya bakın.

Yeni bölümü açmaya devam edemeyeceğinizi unutmayın, çünkü açık olacak /usrçok sayıda dosya /usrolacaktır.

Dosyaların kopyalanması

Kullanırdım cp -a. -aarşiv seçeneğidir. Gönderen adam sayfası :

-a, --archive
          same as -dR --preserve=all
...
-d     same as --no-dereference --preserve=links
...
-P, --no-dereference
          never follow symbolic links in SOURCE
...
--preserve[=ATTR_LIST]
          preserve      the      specified      attributes       (default:
          mode,ownership,timestamps),  if  possible additional attributes:
          context, links, xattr, all
...
-R, -r, --recursive
          copy directories recursively

/ Etc / fstab dosyasını düzenleme

Yeni bölümünüzün UUID kodunu bilmeniz gerekir. Haritalamayı aşağıdakileri yaparak görebilirsiniz:

$ ls -l /dev/disk/by-uuid/

Ve sonra bu satırı şuraya ekle /etc/fstab:

UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr           ext4    defaults        0       2

UUID'yi UUID'inizle değiştirin ext4ve kullandığınız dosya sistemi türü olarak değiştirin - bölümü kurduysanız bunu bilmelisiniz.

Eski dosyaları sil

Yeniden başlatmanın ardından, /usrkök bölümdeki eski dosyalar monte edilen yeni bölüm tarafından gizlenecektir /usr. Fakat eski dosyalara ulaşmak için mount mount hilelerini kullanabiliriz ve sonra silebiliriz.

$ sudo mount --bind / /mnt
$ sudo rm -rf /mnt/usr/*
$ sudo umount /mnt

Ancak bazı yanlış yazımlar (yalnızca siz yazdığınızda Enter'a basmanız sudo rm -rf /mnt) felakete neden olabilir, bu nedenle yalnızca ne yaptığınıza çok güveniyorsanız, hiçbir kesinti ile başa çıkamıyorsanız ya da hiç çalışmamanız durumunda bu yöntemi kullanırdım. makineye fiziksel erişim ve dolayısıyla canlı bir CD ya da canlı bir USB belleği önyükleyemedik.


4
rsyncbunun için çok daha uyguncp
Marco Ceppi

1
@MarcoCeppi Bu konuda genişleyebilir misiniz? Belki rsyncbunun yerine değişken bir cevap verebilirsin ?
Kazark

6
Cp komutunu ile değiştirin rsync -avz. Rsync, kopyaları yeniden başlatmanıza izin verir ve genellikle bölümler, blok aygıtları veya makineler arasında taşınırken kullanılmalıdır.
Marco Ceppi

2
Kullanmayın cp. HARD LINKS'i korumaz. Bu gelecekte paket güncellemelerini kıracak . Örneğin /usr/bin/s2pve /usr/bin/psedaynı dosya. Taşınmak cp, bu dosyanın 2 bağımsız sürümünü oluşturacaktır. Do rsync -aHyerine.
04

1
Her şeyden önce, -z bayrağını atlayın - dosyaları bir ağ üzerinden göndermemeniz durumunda yükü gereksiz kılar. (Rsync genellikle onu görmezden gelmek için yeterince akıllıdır, ancak yine de bırakabilir) . @ AleksandarStefanović kesinlikle orada içeriğini istemiyor klasör ve bu gerçekleşti nedeni yolu bazı rsync tuhaflıklar kaynaklandığını: o davranır rsync -avH a/ bfarklı rsync -avH a bkopyalama, içeriği klasörünün a(olduğunu a/*ilk durumunda) ve klasörün kendisini saniyede. Buradaki eğik çizgiyi kullandığınızdan emin olun.
Darael

7

Kullanılan kütüphanelerin çoğu / usr içinde bulunduğundan, Ubuntu kullanırken bu dizinin taşınmasını tavsiye etmem. Aslında, bunu yapmaya çalıştığınızda muhtemelen hata mesajları alıyorsunuz. Dolayısıyla, en iyisi LiveCD'yi kullanmaktır.

Herhangi bir sembolik bağlantının oluşturulup oluşturulmadığından emin olmak istediğiniz cp, rsync vb. Dosyalarını taşımak / kopyalamak için çeşitli olasılıklar kullanabilirsiniz. cp ve rsync'de bunun için seçenekler var.

Dosyaları diğer bölüme taşıdıktan sonra, / bölümü / usr dizinine bağlamak için / etc / fstab içine başka bir mount eklemeniz gerekir.


2

Dikkat: Ne yaptığım hakkında hiçbir fikrim yok, sadece komutları kopyalayıp başkalarının önerdiği gibi yapıyorum. Bunu yapmanın yanlış yolu olabilir, ama benim için çalışıyor (şimdilik, en azından).

Bunu nasıl yaptım (Hamish'in cevabını ve yorumlarını takip ederek):

  1. Yeni oluşturulan bölümdeki tüm dosyaları kopyalayın (bölümünüzün yerini değiştirin, benimkine benzemesi gerekir):

    rsync -avz /usr /media/aleksandar/750b84e2-e65f-4309-ade5-5af0033a937c 
    
  2. Bu noktada işe yaramayacak olan/usr bölümdeki her şeyi klasöre kopyaladığını fark ettim, bu yüzden her şeyi (dosya yöneticisi ile birlikte) o klasörden bölümün köküne kopyaladım ve silinen boş sonradan klasör.

  3. Düzenleme /etc/fstab(Hamish'in cevabında olduğu gibi, elbette, UUID'nizle değiştirin)

    UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr           ext4    defaults        0       2
    
  4. Çok akıllıca olmadığı ortaya çıkan bir adım: Şu anda monte edilmiş /usrbölümün adını değiştirdim /usrBACKUP, sadece şunu biliyorum ki, sistemi yeniden başlattığımda, aslında eski olanı değil, yeni oluşturulan bölüme yeniden başlıyor . Ondan sonra, her şey ekranda parlıyordu ve açma / kapama düğmesine uzun süre basarak (olduğu gibi dahi) kapatmak zorunda kaldım . Sisteminizi değiştirmek istemiyorsanız bu adımı atlayın.

  5. Sistemi yeniden başlat

  6. Yeniden başlattıktan sonra, yeni /usrbölümünüzün monte edilip edilmediğini görmek ve her şeyin planlandığı gibi yapıldığını emniyet kontrol etmek için Sistem Monitörü'nü veya benzeri bir uygulamayı açın .

  7. Her şeyin yolunda olduğunu kontrol ettikten sonra, eski /usrbölümünüzü silebilirsiniz . Bir şeyler ters giderse diye benimkini tutacağım.


Önceden kabul edilmiş bir cevabı varsa ve neden bahsettiğini bilmiyorsan neden 5 yıllık bir soruyu cevaplamak?
cmks

2
@ cmks, çünkü diğer cevapların eksik olduğunu hissettim - bir cevaptan tam bir çözüm alamadım ve cevapların hiçbiri kendilerine yeterince detay vermedi. Bu soruya gelecek olan kullanıcıların yardıma ihtiyacı olacağını hissettim. Biri hala bu sorudan bilgiye ihtiyaç duyuyorsa, beş yaşında olması önemli değil.
Aleksandar Stefanović

1
Neden herkes sistemi yeniden başlatıyor? Koşmaya sudo mount -adevam etmesine izin vermemeli mi?
Hagen von Eitzen

@Hagen Ben sadece iyi bir önlem için sanırım
Aleksandar Stefanović
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.