एक ext4 फाइलसिस्टम को डीफ्रैग कैसे करें


65

मुझे यह कहते हुए कोई जवाब नहीं चाहिए कि कोई ज़रूरत नहीं है, कृपया!

जवाबों:


66

अपनी फ़ाइलों को डीफ़्रैग करने के लिए e4defrag का उपयोग करें

यदि आपकी ext4 फ़ाइल सिस्टम extentविकल्प के साथ बनाई गई है (यह हाल के डिस्ट्रोस में डिफ़ॉल्ट है), तो आप e4defragउपयोगिता की जाँच कर सकते हैं और इसे ऑनलाइन डिफ्रैगमेंट कर सकते हैं अर्थात बिना umounting के।

बस कुछ इस तरह से विखंडन स्तर की जांच करें (आपको विवरण देखने के लिए मूल होने की आवश्यकता है):

sudo e4defrag -c /path/to/myfiles

यहां आपको प्राप्त आउटपुट का एक उदाहरण दिया गया है:

$ sudo e4defrag -c iso/
<Fragmented files>                             now/best       size/ext
1. /home/gerlos/iso/debian-live-7.5.0-i386-rescue.iso
                                                 7/1         111177 KB
2. /home/gerlos/iso/systemrescuecd-x86-4.4.1.iso
                                                 4/1         100897 KB
3. /home/gerlos/iso/debian-live-7.5.0-amd64-rescue.iso
                                                 6/1         116053 KB
4. /home/gerlos/iso/ubuntu-14.04.2-server-amd64.iso
                                                 8/1          76160 KB
5. /home/gerlos/iso/ubuntu-14.10-desktop-amd64.iso
                                                15/1          75712 KB

 Total/best extents             40/5
 Average size per extent            90577 KB
 Fragmentation score                0
 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
 This directory (iso/) does not need defragmentation.
 Done.

इस उदाहरण में, अधिकांश समय यह आपको बताएगा कि किसी भी डीफ़्रैग्मेन्टेशन की आवश्यकता नहीं है, लेकिन यदि आप इसे वैसे भी करना चाहते हैं, तो आप उपयोग कर सकते हैं (आपको अपनी खुद की फ़ाइलों को डीफ़्रैग करने के लिए sudo का उपयोग करने की आवश्यकता नहीं है):

e4defrag /path/to/myfiles

आपके उपयोगकर्ता इसे अपनी फ़ाइलों पर भी चला सकते हैं, जब तक आप अन्य उपयोगकर्ता या सिस्टम फ़ाइलों पर काम नहीं करना चाहते, तब तक रूट होने की कोई आवश्यकता नहीं है।

e4defragमें है e2fsprogsपैकेज, और मैं इसे पहले से ही अपने Ubuntu पर स्थापित किया गया है लगता है।


2
e4defrag -c कुछ भी नहीं देता है done। इसका मतलब यह है कि कोई विखंडन नहीं है?
रज्जु

3
क्षमा करें, मैं यह उल्लेख करना भूल गया कि आपकी फ़ाइलों के विखंडन पर विस्तृत जानकारी प्राप्त करने के लिए आपको रूट के e4defrag -cसाथ sudoया रूट की आवश्यकता है । लेकिन उन्हें डीफ़्रैग करने की आवश्यकता नहीं है।
gerlos

अगर मैं रूट फाइल सिस्टम को डीफ़्रैग करने की कोशिश करूं तो क्या होगा /?
पावेल सायकेट

2
@PavelSayekat आपको बस sudoचलाने के लिए रूट (यानी उपयोग ) करने की e4defrag /आवश्यकता है, और कुछ विशेष करने की आवश्यकता नहीं है। e4defragवहाँ हर फ़ाइल की जाँच करेगा, इसलिए सब कुछ पढ़ने के लिए अपनी ड्राइव की प्रतीक्षा करने के लिए तैयार रहें। याद रखें कि यह समय की बड़ी बर्बादी हो सकती है। अधिकांश समय, यदि आपके पास फ़ाइल सिस्टम में पर्याप्त खाली स्थान है, तो आपके पास केवल कुछ खंडित फ़ाइलें होंगी, और अक्सर वे आपके वेब ब्राउज़र गतिविधि से संबंधित आपके होम डायर में होंगी। उदाहरण के लिए, अपने डेस्कटॉप पीसी पर मैं हर दिन e4defragरिपोर्ट का उपयोग करता हूं कि केवल 5 खंडित फाइलें हैं, सभी क्रोमियम कॉन्फ़िगरेशन और कैश डीआईआर में हैं।
gerlos 10

यह केवल उदाहरणों को बताता है कि फाइल अपने आप नहीं बल्कि फाइलों को एक दूसरे के बीच ले जाती हैं। यही है, अगर मेरे पास डिस्क पर तीन अलग-अलग भौतिक स्थानों पर तीन फ़ाइलों वाली निर्देशिका है, तो इस उपकरण को चलाने के बाद भी इन फ़ाइलों का एक साथ उपयोग करना धीमा होगा। क्या डिस्क पर फ़ाइलों को फिर से व्यवस्थित करने का कोई तरीका है, या "मुक्त स्थान को डीफ़्रैग्मेंट करें" जैसा कि कभी-कभी कहा जाता है?
फजाइटीव्यू

29

E2fsprogs पर एक नज़र डालें । यह उबंटू पैकेज में भी उपलब्ध है। यह कार्यक्रम e4defrag प्रदान करता है।


5
यह वास्तव में केवल ext4 फ़ाइल सिस्टम पर उपयोगी है जो -O सीमा के साथ बनाए गए थे, जो डिफ़ॉल्ट नहीं है।
dobey

आदमी डीफ़्रैग के बारे में जवाब देता है, यह e4defrag के साथ सकारात्मक हो सकता है, cuestion एक बाहरी पत्रकारिता की विशिष्टता नहीं है या नहीं, वह -1 के लायक नहीं है।
फेलिप अल्केबार

8
@dobey Ubuntu 12.04 (.3) LTS में अनुभाग extentका ext4श्लोक शामिल [fs_types]है /etc/mke2fs.conf- इस प्रकार, यह एक "डिफ़ॉल्ट" है। यद्यपि, जिस मशीन से फाइलसिस्टम जुड़ा है, उस समय-समय के विन्यास की परवाह किए बिना, आप स्वयं फाइलसिस्टम का निरीक्षण करने के लिए सर्वोत्तम हैं: tune2fs -l </dev/with/ext4> | grep extent(या संपूर्ण ट्यून 2 एफएस आउटपुट में "फाइलसिस्टम फीचर्स" लाइन को देखें)। माइंड यू, मैं सिर्फ e4defrag -c ...100% फुल 1TB फाइल सिस्टम पर चला extent, और इसमें केवल 5 खंडित फाइलें हैं, और "विखंडन स्कोर" 0. YMMV।
रिचर्ड माइकल

@RichardMichael FYI करें: e2defrag -c /pathकेवल पहली 5 खंडित फाइलों को प्रिंट करता है (सबसे खंडित भी नहीं)। भागो e2defrag -v /pathयह कैसे हद तक मायने रखता है कम कर देता है देखने के लिए।
तिनो

17

अपनी फ़ाइल प्रणाली को डीफ़्रैग करने के लिए Gparted का उपयोग करें

यदि आपके पास अपनी हार्ड ड्राइव पर पर्याप्त जगह है, तो आप अपनी फ़ाइल प्रणाली ( ext2, ext 4, nfts, आदि ) को डीफ़्रैग करने के लिए Gparted का उपयोग कर सकते हैं । आपको एक सीडी / डीवीडी / यूएसबी बूट डिस्क से बूट करना होगा क्योंकि आप जिस ड्राइव पर काम कर रहे हैं वह अनमाउंट होना है। आपके पास काम करने के लिए उपयोग की गई जगह की तुलना में अधिक अप्रयुक्त स्थान उपलब्ध होना चाहिए और इसमें कुछ समय लग सकता है।

  • बूट डिस्क से बूट करें।
  • Gparted चलाएं और उस विभाजन को सिकोड़ें जिसमें वह डेटा है जिसे आप अपने डेटा की मात्रा से अधिक डीफ़्रैग करना चाहते हैं।
  • सुनिश्चित करें कि आप जिस विभाजन को डीफ़्रैग करना चाहते हैं, वह ड्राइव पर अंतिम विभाजन है, इसे अंत तक ले जाएं (यदि ड्राइव पर केवल एक विभाजन है, तो आपको इसके सामने एक और रिक्त विभाजन बनाना पड़ सकता है)।

विभाजन के साथ आप ड्राइव पर अंतिम विभाजन के रूप में डीफ़्रैग करना चाहते हैं:

  • विभाजन को इसके बायीं ओर बढ़ाकर अधिकतम आकार दें। यह आपके विभाजन डेटा को ड्राइव के अंत तक ले जाएगा।
  • एक बार यह हो जाने के बाद, उस विभाजन को पिछले आकार में वापस सिकोड़ लें।
  • यदि आपने डिस्क पर एक से अधिक विभाजन करने के लिए एक रिक्त विभाजन बनाया है, तो अब आप इसे हटा सकते हैं।
  • अपने विभाजन को मूल क्रम में वापस ले जाएँ और उस विभाजन को फिर से भरें जिसे आप फिर से पूर्ण आकार में बदलना चाहते थे।

यह अब डीफ़्रेग्ड है।

और मुझे पता है कि आप ubuntu को डिफ्रैग करने के लिए क्यों नहीं / क्यों में रुचि नहीं ले रहे हैं, लेकिन मैं लिंक को पोस्ट -डिफ्रैग्मेंटेशन-अनावश्यक वैसे भी क्यों पोस्ट करूंगा ।


सिकुड़ने और दाएं घूमने के बाद, आप बाएं क्यों बढ़ते हैं और फिर बाएं चलने के बजाय फिर से सिकुड़ते हैं?
जेसन सी

इसके अलावा, मैंने देखा कि बढ़ते-बाएं कदम के बाद, डेटा को वास्तव में फिर से छोड़ दिया गया था (gparted मूविंग डेटा द्वारा सबूत, ब्लॉक डिवाइस की एक प्रत्यक्ष परीक्षा द्वारा बाद में सत्यापित), इसलिए जब तक कि संस्करण / फाइलसिस्टम-निर्भर व्यवहार अंतिम न हो। हटना + regrow को छोड़ा जा सकता है। यह केवल करने के लिए पर्याप्त प्रतीत होता है: 1) हटना और दाएं चलना, 2) लागू होना, 3) बाएं बढ़ना।
जेसन सी

विभाजन को सरल करना जिसे आप अंतिम रूप से डीफ्रैग करना चाहते हैं, जरूरी नहीं कि यह एचडी के वास्तविक छोर तक ले जाए। विभाजन को बाएं से अधिकतम आकार तक बढ़ाना सुनिश्चित करता है कि अंत विभाजन वास्तव में हार्ड ड्राइव के बहुत अंत तक "स्थानांतरित" है।
जेम्स

सही करने के लिए स्थानांतरित करना करता है हार्ड ड्राइव के अंत पर ले जाते हैं। जीएटीआई जीयूआई के शीर्ष पर विभाजन बार वास्तव में डेटा लेआउट का एक सटीक प्रतिनिधित्व है (ठीक है, कम से कम ओएस पर दिखाई देता है, उदाहरण के लिए फ्लैश डिवाइस नियंत्रक के दूसरी तरफ भौतिक स्थानों के लिए तार्किक हैं, लेकिन एक के लिए विशिष्ट HDD, यह सटीक है)। यह विभाजन तालिका में नए प्रारंभ स्थान को देखकर सत्यापित किया जा सकता है। :)
जेसन सी

आह, हम गलत कर रहे हैं। आप विभाजन को फिर से व्यवस्थित करते हैं, इसलिए यह अंतिम है। मैं मतलब के लिए कदम ड्राइव के अंत में विभाजन है, और है कि मैं क्या सोचा था तुम भी मतलब (आप विभाजन के आसपास ड्राइव पर gparted के साथ स्वतंत्र रूप से क्रम बदल कर उन्हें की जा सकता है) है। :)
जेसन सी

3

Linux में ext4 फाइल सिस्टम को डीफ़्रैग्मेन्ट करना मैं इस उत्तर को यह दिखाने के लिए भी जोड़ रहा हूं कि हम कुछ निर्मित कार्यों को करने के लिए विभिन्न अंतर्निहित लिनक्स उपकरणों के बारे में कैसे पता लगा सकते हैं। आप

इसके अलावा, ध्यान दें कि आपको सुपर-उपयोगकर्ता के रूप में केवल तभी करना होगा, जब आप बिना सोचे-समझे डीफ़्रैग्मेन्ट करना चाहते हैं।

एप्रोपोस कमांड का उपयोग करना

e4defrag -vc /path #verbose output with count

2

Ubuntu 14.04 LTS एक क्लीन इन्स्टॉल (Win-Junk के ऊपर नहीं रहने पर) में स्थापित होने पर EXT4 पार्टीशन में (कम से कम प्राथमिक ड्राइव) करता है।

इस स्थिति में, यदि आपने एक नई प्रणाली स्थापित की है, या एक पुरानी प्रणाली पर नए स्वरूपित किया है और फिर एक साफ स्थापित किया है, तो 14.04 एलटीएस के साथ डिफ़ॉल्ट रूप से, आपके पास एक EXT4 विभाजन है /dev/sda1

अब, बस एक टर्मिनल खोलें ( CTRL- ALT- T) और टाइप करें:

sudo e4defrag -c /dev/sda1

और तब तक धैर्य रखें जब तक 'जाँच' पूरी न हो जाए और आपको विखंडन रिपोर्ट वापस मिल जाए।

यदि आप अपने OS ड्राइव पर EXT4 विभाजन होने के बारे में आश्वस्त नहीं हैं, तो बस घर जाएं और टाइप करें df -T। यह देखने के लिए देखें कि आपके sda * विभाजन क्या हैं (इसे 14.04LTS में आज़माएँ, और आप EXT4 देखेंगे जब तक कि आपने हार्डड्राइव सेटअप पर दूसरा विभाजन प्रकार नहीं चुना)।


थोड़ा ऑफ-टॉपिक मिल गया और लगभग किसी भी सवाल के लिए कोई मूल्य नहीं जोड़ा, विशेष रूप से अंतिम शेख़ी के साथ।
फर्नांडो सिल्वेरा

आप एक ही कमांड के साथ एक से अधिक विभाजन को डीफ़्रैग्मेन्ट कर सकते हैं: sudo e4defrag / dev / sda1 / dev / sda2
ProgAndPlay

1

e2fsck -D /dev/sda1 सॉर्टिंग द्वारा निर्देशिकाओं का अनुकूलन और उन्हें reindexing जो आमतौर पर चीजों को गति देता है। एक पूर्ण फाइल सिस्टम डीफ़्रैग नहीं माना जा सकता है, लेकिन सभी सिस्टमों में e4defrag नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.