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?
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:
Live CD kullanmak en güvenli olur, ancak şunları yapabilirsiniz:
/usrdeğiştirmeyin./etc/fstab, böylece /usrbir sonraki yeniden başlatma üzerine monte edilecektirHer 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.
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
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.
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.
rsyncbunun yerine değişken bir cevap verebilirsin ?
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.
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.
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.
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.
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):
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
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.
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
Ç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.
Sistemi yeniden başlat
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 .
Her şeyin yolunda olduğunu kontrol ettikten sonra, eski /usrbölümünüzü silebilirsiniz . Bir şeyler ters giderse diye benimkini tutacağım.
sudo mount -adevam etmesine izin vermemeli mi?
rsyncbunun için çok daha uyguncp