Klasörümün /usr
yeni 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 /usr
yeni 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:
/usr
değiştirmeyin./etc/fstab
, böylece /usr
bir 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 /usr
olacaktır.
Kullanırdım cp -a
. -a
arş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 ext4
ve kullandığınız dosya sistemi türü olarak değiştirin - bölümü kurduysanız bunu bilmelisiniz.
Yeniden başlatmanın ardından, /usr
kö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.
rsync
bunun 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/s2p
ve /usr/bin/psed
aynı dosya. Taşınmak cp
, bu dosyanın 2 bağımsız sürümünü oluşturacaktır. Do rsync -aH
yerine.
rsync -avH a/ b
farklı rsync -avH a b
kopyalama, 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ş /usr
bö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 /usr
bö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 /usr
bölümünüzü silebilirsiniz . Bir şeyler ters giderse diye benimkini tutacağım.
sudo mount -a
devam etmesine izin vermemeli mi?
rsync
bunun için çok daha uyguncp