ext4 विभाजन आकार / मुक्त स्थान की विसंगतियां


14

अपने डेटा के लिए 250GiB बैकअप विभाजन बनाते समय, मैंने रिपोर्ट विभाजन आकार और Nautilus में मुक्त स्थान, gParted, df, tune2fs, आदि के बीच बहुत सी विसंगतियों पर ध्यान दिया है।

पहले मुझे लगा कि यह एक GiB / GB भ्रम है। यह नहीं था

तब मुझे लगा कि यह ext4 के आरक्षित ब्लॉक हो सकते हैं। यह नहीं था

Im पूरी तरह से हैरान। यहाँ कुछ चित्र हैं। यहाँ कदम हैं:

  • पहला, एनटीएफएस। 524288000 सेक्टर x 512 बाइट्स / सेक्टर = 268435456000 बाइट्स = 268.4 GB = 250 GiB।

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें

नॉटिलस का कहना है " कुल क्षमता: 250.0 जीबी " (भले ही इसकी वास्तव में GiB, जीबी नहीं)। इसके अलावा छोटी-मोटी गलतफहमी, अब तक, इतनी अच्छी

  • अब, एक ही विभाजन, gparted के साथ ext4 के रूप में तैयार किया गया है:

यहां छवि विवरण दर्ज करें

प्रथम, अंतिम और कुल क्षेत्र समान हैं। यह समान 250GB विभाजन है। प्रयुक्त आकार 4.11GiB है (आरक्षित ब्लॉक शायद?)

यहां छवि विवरण दर्ज करें

नहीं। आरक्षित ब्लॉकों की तरह लग रहे हैं 12.7 GiB (~ 5%। ouch! )। लेकिन ... क्यों कुल क्षमता अब केवल 246.1 GiB है ??? । यह अंतर (प्रकार) gparted द्वारा बताए गए 4.11 GiB से मेल खाता है। लेकिन ... अगर यह आरक्षित ब्लॉकों से नहीं है, तो यह क्या है? और gparted didnt ने रिपोर्ट क्यों नहीं की है कि 12.7GiB का उपयोग किया गया है?

$ df -h /dev/sda5
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             247G  188M  234G   1% /media/BACKUP

dfरिपोर्ट किए गए खाली स्थान में नॉटिलस से मेल खाता है। लेकिन .. केवल 188M का इस्तेमाल किया? यह ~ 12GB नहीं होना चाहिए? और कुल क्षमता अभी भी गलत है। इसलिए मैं tune2fsकुछ सुराग खोजने के लिए दौड़ा । (अप्रासंगिक उत्पादन ommited है)

$ sudo tune2fs -l /dev/sda5
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   BACKUP
Filesystem UUID:          613d592e-47f5-4206-96a7-210090d340ef
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Filesystem state:         clean
Filesystem OS type:       Linux
Block count:              65536000
Reserved block count:     3276800
Free blocks:              64459851
First block:              0
Block size:               4096

65536000 कुल ब्लॉक * 4096 बाइट्स / ब्लॉक = 268435456000 बाइट्स = 268.4 GB = 250 GiB। यह gparted से मेल खाता है।

3276800 आरक्षित ब्लॉक = 13421772800 बाइट्स = 13.4 GB = 12.5 GiB। यह (फिर से, क्रमबद्ध) नॉटिलस से मेल खाता है।

64459851 मुक्त ब्लॉक = 264027549696 बाइट्स = 264.0 जीबी = 245.9 गिब। क्यों? यह या तो 250-12.5 = 237.5 (या 250- (12.5 + 4.11) = ~ 233) होना चाहिए?

आरक्षित ब्लॉक निकालना:

$ sudo tune2fs -m 0 /dev/sda5
tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks percentage to 0% (0 blocks)

$ sudo tune2fs -l /dev/sda5
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   BACKUP
Filesystem UUID:          613d592e-47f5-4206-96a7-210090d340ef
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Filesystem state:         clean
Filesystem OS type:       Linux
Block count:              65536000
Reserved block count:     0
Free blocks:              64459851
Block size:               4096

जैसी कि उम्मीद थी, वही ब्लॉक काउंट, 0 आरक्षित ब्लॉक, लेकिन ... वही फ्री ब्लॉक ? क्या मैंने 12.5 GiB को मुक्त किया है?

$ df -h /dev/sda5
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             247G  188M  246G   1% /media/BACKUP

यहां छवि विवरण दर्ज करें

लगता है जैसे मैंने किया। अवेलेबल स्पेस 233 से 245.9 GiB तक चला गया। बिल्कुल दिखाया gparted didnt देखभाल बिल्कुल पता नहीं है एक ही जानकारी ! (एक समान स्क्रीनशॉट पोस्ट करने के लिए बेकार)

कितनी बड़ी गड़बड़ है!

मैंने इसे सर्वश्रेष्ठ के रूप में दस्तावेज़ करने की कोशिश की ... तो, कृपया कोई मुझे यहाँ क्या चल रहा है पर कोई सुराग दे सकता है?

  • NTFS से उन मिस्टर 4.11 GiB क्या गायब हैं -> ext4 स्वरूपण?
  • क्यों gparted, Nautilus, tune2fs, df के बीच बहुत सारी विसंगतियां हैं?
  • मेरे गणित में क्या गलत है? (इस पोस्ट में बिखरे हुए सवाल)

किसी भी मदद की सराहना की है। हालांकि मैं यह नहीं समझ सकता कि क्या चल रहा है, मैं गंभीरता से सब कुछ के लिए NTFS के पक्ष में ext4 पर देने पर विचार कर रहा हूं लेकिन मेरा / विभाजन।

धन्यवाद!




@ यूरे हरेरा: क्या आपने वास्तव में मेरा प्रश्न पढ़ा है , या कम से कम पहली कुछ पंक्तियाँ? यह वह जगह है नहीं एक GiB / GB मुद्दा। विभाजन 268.4GB = 250.0GiB है, 246.1 नहीं
MestreLion

1
एक और जवाब आप पर एक नज़र डाल सकते हैं: askubuntu.com/questions/5335/…
enzotib

जवाबों:


13

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

लापता 4GB वास्तव में उपयोग किया जाता है ext4 के लिए fs ओवरहेड है। एनटीएफएस केवल शुरुआत में एमएफटी के लिए थोड़ी मात्रा में स्थान आवंटित करता है, और आवश्यकतानुसार इसे बढ़ता है। हालांकि, फाइलसिस्टम की मौजूदा श्रृंखला प्रारूप समय पर इनोड टेबल (एमएफटी के लगभग बराबर) के लिए जगह आवंटित करती है और यह विकसित नहीं हो सकती है। रिपोर्ट की गई कुल जगह से गायब स्थान इनोड टेबल है। शेष बचे हुए स्थान का उपयोग जर्नल (आमतौर पर 128 एमबी) और इनसाइड आकार से होता है।


धन्यवाद, +1 कुछ रहस्यों को सुलझाने के लिए! लेकिन, अगर ~ 4GB फाइलसिस्टम ओवरहेड हैं, तो इसमें से कुछ (3.9GB) कुल स्थान से क्यों काटे जाते हैं, जबकि 188MB वास्तव में उपयोग किया जा रहा है? कौन सा (या दोनों) ओवरहेड है? और अलग ढंग से क्यों संभाला? साथ ही, dfसुडो के साथ भी, कुल क्षमता (247 जीबी) और नौटिलस की तरह इस्तेमाल की गई जगह (188 एमबी) दिखाती है। तो अगर यह एक बग, इसके न केवल सूक्ति है।
मेस्ट्रैलियन

मुझे लगा कि 188MB ओवरहेड था (NTFS से 72MB की तुलना में)। लेकिन, अगर NTFS ओवरहेड समय के बाद बढ़ेगा, तो क्या इसका मतलब यह है कि Nautilus बाद में रिपोर्ट करेगा कि यह कुल क्षमता सिकुड़ रही है ?
MestreLion

सुधार: df हमेशा उपलब्ध स्थान दिखाता है, कोई फर्क नहीं पड़ता कि कौन इसे चलाता है। मुक्त स्थान (== उपलब्ध स्थान + आरक्षित स्थान) देखने के लिए, का उपयोग करें stat -f /media/BACKUP
मारियस गेदमिनस

स्पष्ट करने के लिए संपादित उत्तर। और मेरा मानना ​​है कि एनटीएफएस केवल अधिक उपयोग किए जाने वाले स्थान की रिपोर्ट करेगा, एमएफटी बढ़ने के कारण कुल हटना नहीं। @ मार्स, यह भी सही नहीं है। स्टेटफ्स () और इसलिए डीएफ और स्टेट-एफ दोनों ही उपलब्ध ब्लॉक को गिनते हुए उपलब्ध स्थान को नहीं दिखाते हैं। मैं शपथ ले सकता था कि यह कोटा के लिए भी समायोजित है, और कॉलिंग उपयोगकर्ता के आधार पर इसकी प्रतिक्रिया में विविधता है, लेकिन आप इसके बारे में सही हैं; यह कोटा की गिनती नहीं करता है और परवाह नहीं करता है कि उपयोगकर्ता इसे क्या कहता है।
Psusi

@psusi: इसलिए मेरे पास ~ 3.9GiB की इनोड टेबल है, और ~ 188MB जर्नल + कुछ है? और Nautilus टोटल टेबल को टोटल साइज़ से घटाते हैं, जबकि जर्नल को स्पेस की तरह इस्तेमाल करते हैं? और उन्हें इस्तेमाल की गई जगह के 4.11GiB के रूप में रिपोर्ट किया है? क्या वो सही है? यदि हां, तो मैं चाहता था कि नॉटिलस दोनों को एक ही तरह से उपर ले जाए .. या तो दोनों को कुल से घटाया जाए या दोनों को "प्रयुक्त स्थान" (अधिमानतः) के रूप में गिना जाए।
MestreLion

7

सबसे पहले, आरक्षित ब्लॉक फाइलसिस्टम आंतरिक प्रबंधन के लिए उपयोग किए जाने वाले ब्लॉक नहीं हैं

आरक्षित ब्लॉक बस के लिए आरक्षित हैं root, यह विश्वास दिलाने के लिए कि उस विभाजन पर फ़ाइलों का उपयोग करने वाली सेवाओं को कुछ गैर-व्यवस्थापक उपयोगकर्ता द्वारा सभी स्थान को भरने से इनकार नहीं किया जा सकता है।

यहां तक ​​कि बिना आरक्षित ब्लॉकों ( -m 0) के साथ हमेशा फ़ाइल सिस्टम आंतरिक प्रबंधन के लिए उपयोग किए जाने वाले स्थान का एक हिस्सा होता है, मैं यह नहीं कह सकता कि मुझे कितना गहरा ज्ञान है।

इसके अलावा, Gparted को निष्पादित किया जाता है root, इसलिए यह आरक्षित ब्लॉकों को मुफ्त में देखता है। उपयोगकर्ता के रूप में निष्पादित Nautilus , उन्हें गैर मुक्त के रूप में देखते हैं।

ठीक है, @psusi उत्तर बहुत स्पष्ट है, मेरे पास जोड़ने के लिए कुछ भी नहीं है।


हम्म, बहुत जानकारीपूर्ण, +1। कम से कम मैंने कुछ मुद्दों को हल किया है। आरक्षित ब्लॉकों को "उपयोग किए गए ब्लॉकों" के बजाय गैर-रूट के लिए "सीमा टोपी" के रूप में देखकर, gparted, df और tune2fs रीडिंग सहमत (और समझ में आता है) बनाता है। लेकिन कुछ प्रश्न अभी भी बने हुए हैं, विशेष रूप से 4 जीबी की इस्तेमाल की गई जगह / कुल क्षमता।
मेस्ट्रैलियन

1
इसके अलावा, मैंने कहीं पढ़ा है (उन पुराने में से एक "आपको अपने लिनक्स विभाजन को हर महीने" HOWTOs को डिफ्रैग करने की आवश्यकता क्यों नहीं है?) कि रूट के लिए 5% स्थान को जलाने से एक्सन आवंटन एल्गोरिदम को कुछ साँस लेने की जगह मिलती है और इसलिए बचा जाता है विखंडन।
मारियस गेदमिनस

1

Gparted का उपयोग करके कुछ मेगाबाइट द्वारा विभाजन के आकार को कम करने का प्रयास करें, फिर इसे अपने मूल आकार में फिर से बढ़ाएं। इससे अन्य एप्लिकेशन को आकारों को सही तरीके से पढ़ने का कारण हो सकता है। मैंने हाल ही में इस तरह से एक 50 जीबी त्रुटि को ठीक किया!

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