किसी अन्य मौजूदा विभाजन को कैसे आगे बढ़ाना है?


16

मेरा एक / विभाजन है जिसमें / var शामिल है और बहुत छोटा है। मेरे पास एक और मौजूदा विभाजन है जिसमें पर्याप्त जगह है।

यहाँ मेरा df है:

File system          Size. Occ. Avai. %Ful. Monté sur
/dev/sda1             5,0G  4,5G  289M  95% /
tmpfs                 242M     0  242M   0% /lib/init/rw
udev                   10M  2,7M  7,4M  27% /dev
tmpfs                 242M     0  242M   0% /dev/shm
/dev/sda2              15G  406M   14G   3% /home

मैं sda1 से sda2 में / var फ़ोल्डर को कैसे स्थानांतरित कर सकता हूं?

जवाबों:


19

एकल उपयोगकर्ता मोड में जाएं, और सुनिश्चित करें कि किसी भी प्रक्रिया को लिखना /varबंद कर दिया गया है। (साथ जांचें lsof | grep /var)

  • mkdir -p /home/var
  • rsync -va /var /home/var
  • mv /var /var.old# आप /var.oldअंतरिक्ष को पुनः प्राप्त करने के लिए किए जाने पर निकाल सकते हैं
  • mkdir -p /var
  • mount -o bind /home/var /var
  • /etc/fstabबाइंड-माउंट को स्थायी बनाने के लिए अपना अपडेट करें ।

/etc/fstab

 /home/var /var        none    bind

Thks! मैं एकल उपयोगकर्ता मोड में कैसे प्रवेश कर सकता हूं? क्या 'var' फोल्डर / होम में रहेगा?
Jérémie

/home/varयदि आप इस तरह से समस्या को हल करते हैं तो हाँ हमेशा एक निर्देशिका होगी । एक तरह से आप रिबूट करके एकल उपयोगकर्ता मोड में जा सकते हैं, और बूट मेनू से एकल उपयोगकर्ता मोड चुन सकते हैं।
ज़ॉडेचेस

मुझे यकीन नहीं है कि यह हर समय ठीक रहेगा। यदि आप अधिक हालिया संस्करण (मट्ठे) का उपयोग कर रहे हैं तो आप ठीक हो सकते हैं क्योंकि इसमें एक / रन फाइलसिस्टम है। OTOH: बूट प्रक्रिया में आरंभिक फाइलें बाँधने से पहले / var में खोली जा सकती हैं।
cstamas

1
@cstamas, एक अलग फाइल सिस्टम पर होने / होने का समर्थन करता है , और हमेशा रहा है। FHS में एक अलग / var होने पर भी FHS और आधिकारिक डेबियन डॉक्स में एक अच्छी बात है।
ज़ॉडेचेस

ठीक है, मुझे लगता है कि आप सही हैं। बाइंड माउंट्स के साथ ऐसा करना मेरे लिए अजीब था।
cstamas

5

आप भी उपयोग कर सकते हैं:

 mkdir /home/var
 <move contents of /var to /home/var -- however you want; EX: mv /var/* /home/var>
 mv /var /var.old
 ln -s /home/var /var

यह fstab और माउंट सामान के साथ खिलवाड़ करने की तुलना में बहुत आसान लगता है।


1
यकीन नहीं होता कि किसी ने इसे डाउन-वोट क्यों किया होगा। यह पूरी तरह से ठीक काम करेगा। एक सिम्-लिंक ठीक काम करना चाहिए। मैं सिर्फ अन्य चीजों के लिए बाइंड माउंट का उपयोग करता हूं, इसलिए मैं उन चीजों के बारे में सोचता हूं।
ज़ॉडेचेस

1
इसे जोड़ने के लिए, यह उतना सुरक्षित नहीं हो सकता है, लेकिन यह वास्तव में काम करता है। मैंने हाल ही में इसे उत्पादन में रखने से पहले मशीन पर किया है। Iw ould का उपयोग सावधानी से करें यदि यह एक ऐसी मशीन है जो उपयोग में है या बहुत सारी प्रक्रियाएं चल रही हैं। मेरे मामले में, यह एक ताज़ा सर्वर था जिसका मतलब केवल टॉमकैट चलाना था।
एजे ब्राउन

1
सिमिंकिंग / var काम करता है, लेकिन ऐसा करने के बजाय मैं अपने आप को याद रखने के लिए / etc / fstab में कोई प्रविष्टि डालना पसंद करता हूं, मैं किस पार्टीशन / वॉल्यूम में क्या डालूं और क्यों (आप टिप्पणी जोड़ सकते हैं)। यह तरीका मेरे लिए और भी समझ में आता है कि अगर मुझे अपने हार्डवेयर में कुछ बदलने की जरूरत है तो मुझे कॉन्फ़िगरेशन में क्या बदलाव करना होगा।
जेरलोस

1
मैं नहीं देख सकता कि यह कैसे काम करेगा। मैं चाहता हूं कि यह काम करे, लेकिन बुनियादी चीजें जैसे init उपयोग / var, क्या वे नहीं हैं?
स्वे स्पेंस

1

/varएकल-उपयोगकर्ता मोड में परिवर्तित किए बिना ले जाएं

जब मैंने अपने नियोक्ता की होस्टिंग कंपनी द्वारा मेरे लिए एक नया वर्चुअल सर्वर लिया था, तो मैंने इसके लिए अतिरिक्त तार्किक वॉल्यूम बनाए varऔर homeजो रूट विभाजन में नियमित निर्देशिका थी। चूंकि वर्चुअल सर्वर प्रदाता केवीएम जैसा इंटरफ़ेस प्रदान नहीं करता था जिसके द्वारा मैं सर्वर को एकल-उपयोगकर्ता मोड में एक्सेस कर सकता था, इसलिए उपरोक्त उत्तर मेरे सेटअप पर लागू नहीं थे। मुझे आशा है कि यह उत्तर दूसरों के लिए समान स्थिति में उपयोगी है (मैंने LVM विवरण रखा है, लेकिन इन्हें छोड़ दिया जा सकता है क्योंकि यह विशेष रूप से प्रासंगिक नहीं है कि नया फाइल सिस्टम एक तार्किक आयतन या डिस्क विभाजन पर बनाया गया है)।

/varLVM के साथ एक नया फाइल सिस्टम बनाएं और उपयोग करें

नए varवॉल्यूम के लिए फ़ाइल सिस्टम बनाएं , इसे माउंट करें (एक अस्थायी निर्देशिका का उपयोग करके) और वर्तमान फ़ाइलों से /varनए फाइल सिस्टम में कॉपी करें । फ़ाइलों की प्रतिलिपि बनाते समय rsync, इसके -a, --archiveविकल्प का उपयोग समय-टिकट, स्वामित्व, मोड आदि -X, --xattrsको संरक्षित करने के लिए और इसके विकल्प को विस्तारित विशेषताओं को संरक्षित करने के लिए करते हैं जैसे कि AppArmor और SELinux द्वारा उपयोग किए जाने वाले सुरक्षा लेबल।

sudo lvcreate -L 60GB -n var VolGroup00
sudo mkfs.ext4 /dev/VolGroup00/var
sudo mkdir /var.new
sudo mount /dev/VolGroup00/var /var.new
sudo rsync -raX /var/ /var.new/

फाइलसिस्टम टेबल को अपडेट करें

/varनिम्न करने के लिए निम्न पंक्ति को जोड़कर नए फ़ाइल सिस्टम को नए माउंट-पॉइंट के रूप में उपयोग करने के लिए कॉन्फ़िगर करें /etc/fstab। ध्यान दें कि 0पास नंबर (अंतिम फ़ील्ड) के रूप में उपयोग किया जाता है ताकि fsckरिबूट की एक निश्चित संख्या के बाद फाइलसिस्टम की स्वचालित रूप से जाँच नहीं होगी (मैं एकल-उपयोगकर्ता मोड में सर्वर में प्रवेश करने की कोई पहुंच नहीं है)।

/dev/mapper/VolGroup00-var    /var    ext4  defaults  0 0

चूंकि मैं एकल-उपयोगकर्ता मोड में नहीं बदल सकता, इसलिए इस नए वॉल्यूम का उपयोग करने के लिए कंप्यूटर को रिबूट करें /var

रूट फाइल सिस्टम से डिस्क स्थान पुनर्प्राप्त करें

मशीन के पुनरारंभ होने के बाद, अस्थायी निर्देशिका को साफ करने और पुरानी /varफाइलों को रूट फाइल सिस्टम से हटाने के लिए निम्न चरणों का पालन करें :

  1. अस्थायी माउंट बिंदु निकालें:

    sudo rmdir /var.new
    
  2. /varरूट फाइलसिस्टम पर पुरानी निर्देशिका की फ़ाइलों के लिए एक वैकल्पिक पथ बनाने के लिए एक नया आरोह बिंदु बनाएं (यह वर्तमान /varमें निर्देशिका पर मुहिम की गई नई फाइलसिस्टम द्वारा "नकाबपोश" है ):

    sudo mkdir /old-root
    sudo mount /dev/mapper/VolGroup00-root /old-root/
    sudo rm -rf /old-root/var/*
    sudo umount /old-root/
    sudo rmdir /old-root/
    
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.