मेरे /usr
फ़ोल्डर को एक नए विभाजन में स्थानांतरित करने की आवश्यकता है। मैं सामग्री को मिटाए बिना यह कैसे कर सकता हूं?
क्या यह तब किया जा सकता है जब उबंटू चल रहा हो, या मुझे इसके लिए लाइवसीडी का उपयोग करने की आवश्यकता है?
मेरे /usr
फ़ोल्डर को एक नए विभाजन में स्थानांतरित करने की आवश्यकता है। मैं सामग्री को मिटाए बिना यह कैसे कर सकता हूं?
क्या यह तब किया जा सकता है जब उबंटू चल रहा हो, या मुझे इसके लिए लाइवसीडी का उपयोग करने की आवश्यकता है?
जवाबों:
लाइव सीडी का उपयोग करना सबसे सुरक्षित होगा, लेकिन आप ऐसा कर सकते हैं:
/usr
जब आप ऐसा कर रहे हैं तो सामग्री में बदलाव न करें।/etc/fstab
ताकि /usr
अगले रिबूट पर माउंट हो जाएप्रत्येक चरण पर विवरण के लिए नीचे देखें।
ध्यान दें कि आप /usr
चलते समय नए विभाजन को माउंट नहीं कर सकते हैं क्योंकि इसमें बहुत सारी फाइलें /usr
होंगी जो खुली होंगी।
मैं उपयोग करूंगा cp -a
। -a
संग्रह विकल्प है। से आदमी पेज :
-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
आपको अपने नए विभाजन के UUID को जानना होगा। आप मैपिंग करके देख सकते हैं:
$ ls -l /dev/disk/by-uuid/
और फिर इस पंक्ति को इसमें जोड़ें /etc/fstab
:
UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr ext4 defaults 0 2
UUID को अपने UUID में बदलें, और ext4
आपके द्वारा उपयोग किए जा रहे फ़ाइल सिस्टम प्रकार में परिवर्तन करें - आपको यह पता होना चाहिए कि क्या आपने विभाजन सेट किया है।
रिबूट के बाद, /usr
रूट विभाजन पर पुरानी फ़ाइलों को नए विभाजन पर छिपाया जाएगा/usr
। लेकिन हम पुरानी फ़ाइलों को पाने के लिए कुछ माउंट बाइंड ट्रिकरी का उपयोग कर सकते हैं और फिर उन्हें हटा सकते हैं।
$ sudo mount --bind / /mnt
$ sudo rm -rf /mnt/usr/*
$ sudo umount /mnt
लेकिन कुछ मामूली गलतियाँ (कहते हैं, जब आप केवल टाइप करते हैं, तो दर्ज करें मारना sudo rm -rf /mnt
) आपदा का कारण बन सकता है, इसलिए मैं केवल इस पद्धति का उपयोग करूंगा यदि आप जो कर रहे थे उस पर बहुत विश्वास था, वास्तव में किसी भी डाउनटाइम से निपट नहीं सकता था, या नहीं मशीन तक भौतिक पहुंच और इसलिए एक लाइव सीडी या लाइव यूएसबी स्टिक को बंद करने में असमर्थ थे।
rsync
इसके बजाय उपयोग करने वाला एक भिन्न उत्तर दें ?
rsync -avz
। Rsync आपको प्रतियों को फिर से शुरू करने की अनुमति देता है और आम तौर पर विभाजन, ब्लॉक डिवाइस या मशीनों के बीच चलते समय उपयोग किया जाना चाहिए।
cp
। यह हार्ड लिंक को संरक्षित नहीं करता है। यह भविष्य में पैकेज अपग्रेड को तोड़ देगा । उदाहरण के लिए /usr/bin/s2p
और /usr/bin/psed
एक ही फाइल है। साथ cp
ले जाने से उस फ़ाइल के 2 स्वतंत्र संस्करण बन जाएंगे। rsync -aH
इसके बजाय करो ।
rsync -avH a/ b
अलग तरीके से व्यवहार करता है। क्षण में। सुनिश्चित करें कि आप यहाँ स्लैश का उपयोग करते हैं। rsync -avH a b
a
a/*
चूंकि उपयोग की जाने वाली अधिकांश लाइब्रेरीज़ / usr में हैं, इसलिए मैं उबंटू को चलाते समय इस निर्देशिका को स्थानांतरित करने की अनुशंसा नहीं करूंगा। वास्तव में, जब आप ऐसा करने का प्रयास करते हैं, तो आपको संभवतः त्रुटि संदेश मिलते हैं। इसलिए, लाइवसीडी का उपयोग करने के लिए सबसे अच्छा है।
आप फ़ाइलें cp, rsync आदि को स्थानांतरित / कॉपी करने के लिए कई संभावनाओं का उपयोग कर सकते हैं। आप यह सुनिश्चित करना चाहते हैं कि कोई भी सहानुभूति बनाई जाए और न केवल प्रतिलिपि बनाई जाए। cp और rsync दोनों के पास इसके लिए विकल्प हैं।
फ़ाइलों को दूसरे विभाजन में ले जाने के बाद आपको नए विभाजन को / usr पर माउंट करने के लिए / etc / fstab में एक और माउंट जोड़ने की आवश्यकता है।
ध्यान दें: मुझे पता नहीं है कि मैं क्या कर रहा हूं, मैं सिर्फ कमांड की नकल कर रहा हूं और दूसरों द्वारा सुझाए अनुसार कर रहा हूं। यह करने का गलत तरीका हो सकता है, लेकिन यह मेरे लिए काम करता है (अभी के लिए, कम से कम)।
इस तरह मैंने इसे किया है (हामिश के जवाब और टिप्पणियों के बाद):
सभी फ़ाइलों को नए बनाए गए विभाजन की प्रतिलिपि बनाएँ (अपने विभाजन के स्थान से बदलें, यह मेरे जैसा दिखना चाहिए):
rsync -avz /usr /media/aleksandar/750b84e2-e65f-4309-ade5-5af0033a937c
इस बिंदु पर मैंने महसूस किया है कि इसने /usr
विभाजन पर फ़ोल्डर में सब कुछ कॉपी किया है , जो काम नहीं कर रहा है , इसलिए मैंने उस फ़ोल्डर से विभाजन के मूल में सब कुछ (फ़ाइल प्रबंधक के साथ) कॉपी किया, और उस खाली को हटा दिया फ़ोल्डर बाद में।
संपादित करें /etc/fstab
(हामिश के उत्तर के रूप में, निश्चित रूप से, अपने यूयूआईडी से बदलें)
UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr ext4 defaults 0 2
एक ऐसा कदम, जो बहुत समझदारी भरा नहीं था: मैंने वर्तमान में घुड़सवार का नाम बदल दिया /usr
विभाजन/usrBACKUP
, ताकि मुझे पता चले कि, जब मैं सिस्टम को रिबूट करता हूं, तो यह वास्तव में नए बनाए गए विभाजन में रीबूट होता है, और पुराना नहीं । उसके बाद, स्क्रीन पर सब कुछ गड़बड़ हो गया, और मुझे इसे लंबे समय तक पावर कुंजी (प्रतिभा के रूप में मैं कर रहा था) द्वारा बंद करना पड़ा । यदि आप अपने सिस्टम को गड़बड़ नहीं करना चाहते हैं तो इस चरण को छोड़ दें।
सिस्टम को रिबूट करें
रिबूट करने के बाद, सिस्टम मॉनिटर या समान एप्लिकेशन खोलें, यह देखने के लिए कि क्या आपका नया है /usr
विभाजन माउंट है, और सुरक्षा-जांच के लिए कि क्या सब कुछ योजना के अनुसार चला गया है।
यह जांचने के बाद कि सब कुछ ठीक है, आप अपने पुराने /usr
विभाजन को हटा सकते हैं । मैं सिर्फ कुछ गलत होने की स्थिति में मेरा रखूँगा।
sudo mount -a
इसे चालू रखने की अनुमति नहीं देनी चाहिए ?
rsync
इतना बेहतर की तुलना में इस के लिए उपयुक्त हैcp