स्वेपन विफल: Btrfs फाइल सिस्टम के साथ लिनक्स सिस्टम पर अवैध तर्क


16

ऑपरेशन के इस क्रम में क्या गलत है, एक ब्रेटफ़स फाइल सिस्टम के साथ डेबियन स्क्वीज़ सिस्टम पर चल रहा है?

$ dd if=/dev/zero of=swapfile2 bs=1024 count=524288
$ sudo mkswap swapfile2
$ sudo chown root:root swapfile2
$ sudo chmod 0600 swapfile2  
$ sudo swapon -v -f swapfile2
swapon on swapfile2
swapon: /home/mathieu/swapfile2: found swap signature: version 1, page-size 4, same byte order
swapon: /home/mathieu/swapfile2: pagesize=4096, swapsize=536870912, devsize=536870912
swapon: swapfile2: swapon failed: Invalid argument

मेरा फाइल सिस्टम है:

$ mount
/dev/mapper/voxbox-root on / type btrfs (rw)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/mapper/voxbox-boot on /boot type ext2 (rw)
fusectl on /sys/fs/fuse/connections type fusectl (rw)

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

जवाबों:


16

यह बग रिपोर्ट इस चर्चा की ओर ले जाती है

इसलिए "अमान्य तर्क" को "आपका फ़ाइल सिस्टम स्वैप फ़ाइल का समर्थन नहीं करता" के रूप में पढ़ा जाना चाहिए

जैसा कि malat द्वारा पोस्ट किया गया है


6
अच्छा पकड़ा! btrfsफाइल सिस्टम स्वैप फ़ाइलों का समर्थन नहीं कर सकते हैं क्योंकि यह फ़ाइल डेटा के चारों ओर घूमती और लिनक्स स्वैप कोड केवल स्वैप फ़ाइल का मानचित्रण एक बार लेता है। यदि यह अनुमति दी जाती है तो तबाही होगी - यादृच्छिक फ़ाइल डेटा जो ब्लॉक का उपयोग करता है जो स्वैप फ़ाइल एक बार उपयोग किया जाता है वह दूषित हो जाएगा।
डेविड श्वार्ट्ज

1
नया स्वैप मैन पेज डॉक्यूमेंट एक नई ट्रिक है "फाइल को लूपबैक डिवाइस में मैप करना संभव है।" मैंने अभी तक इसका प्रयोग करके नहीं देखा है।
मालट

8

मेरी 50 से कम प्रतिष्ठा है इसलिए मैं टिप्पणी नहीं कर सकता। लेकिन मुझे मौजूदा उत्तरों को अपडेट करना है। लिनक्स कर्नेल 5.0.0 में, btrfs मूल रूप से अब स्वैपफाइल का समर्थन करता है। (आपको इसे नो-गाय के रूप में सेट करना होगा)

यहाँ kern.org से कुछ जानकारी ली गई है: https://btrfs.wiki.kernel.org/index.php/FAQ#Does_btrfs_support_swap_files.3F

कर्नेल से 5.0+ btrfs में देशी स्वैप फ़ाइलें समर्थन हैं, लेकिन कुछ सीमाओं के साथ। स्वैप फ़ाइल - पूरी तरह से एक डिवाइस पर कोई संपीड़न के साथ NOCOW के रूप में आवंटित की जानी चाहिए।

यह लिंक दिखाता है कि यह कैसे करना है: https://wiki.archlinux.org/index.php/swap#Swap_file

LINUX में यह नहीं कोशिश करो <4.21 !!!

चेतावनी: संस्करण 5.0 से पहले लिनक्स कर्नेल पर Btrfs स्वैप फ़ाइलों का समर्थन नहीं करता है। इस चेतावनी पर ध्यान देने में विफलता के परिणामस्वरूप फ़ाइल सिस्टम भ्रष्टाचार हो सकता है। जबकि लूप डिवाइस के माध्यम से माउंट किए जाने पर Btrfs पर एक स्वैप फ़ाइल का उपयोग किया जा सकता है, इसके परिणामस्वरूप गंभीर रूप से बदली हुई स्वैप कार्यक्षमता होगी।


1
क्या आप अपने लिंक में संबंधित अनुभाग को उद्धृत कर सकते हैं?
बरगी

@ बरगी मैंने अपना उत्तर संपादित किया और यह अब बेहतर है!
पुनरावृत्ति

2

यदि आप किसी भी तरह से फ़ाइल को स्वैप करना चाहते हैं, तो बस btrfs-swapon का उपयोग करें


मैं उसी समाधान पर आया था, लेकिन मुझे इस तरह के दृष्टिकोण की शुद्धता के बारे में चिंता है। पूर्व। लूप देव के साथ मैं छेद के चारों ओर गन्ना काम कर सकता हूं truncate -s 4G swapfile_holes.img। Ie कारण swaponहै कि कुछ के लिए जाँच करता है कि स्वैपफाइल को उचित प्रदर्शन के लिए कुछ आवश्यकताओं को पूरा करना चाहिए।
ony

1
और अभी कुछ समय पहले मैंने losetupमैपिंग का उपयोग करने से बचने का फैसला किया । losetupBtrfs (पूर्व-आवंटित फ़ाइल के साथ) के माध्यम से स्वैप का उपयोग शुरू करने के बाद मेरा सिस्टम अटक गया । शायद यह किसी तरह बफ़र्स और कैश के साथ हस्तक्षेप करता है। Ie सिस्टम मेमोरी को मुक्त करना चाहता है और कुछ को स्वैप करता है, लेकिन इसके परिणामस्वरूप समान आकार के लिए कैश में वृद्धि होती है। हालांकि मुझे यकीन नहीं है, मैं इससे बचूंगा।
ony

0

अप्रैल 2019 को अपडेट करें: कृपया रिकॉल का जवाब देखें, जो दावा करता है कि Btrfs ने लिनक्स कर्नेल संस्करण 5.0.0 के रूप में स्वैप का समर्थन करना शुरू किया था

मूल उत्तर:

सत्य के उत्तर में मृत लिंक शामिल हैं।

मैंने इसे Btrfs में पाया:

क्या btrfs स्वैप फ़ाइलों का समर्थन करता है?

वर्तमान में नहीं। बस एक फ़ाइल बनाने से एनओसीओवी मदद नहीं करता है, स्वैप फ़ाइल समर्थन एक फ़ंक्शन पर निर्भर करता है जो संभावित भ्रष्टाचारों के कारण जानबूझकर लागू नहीं होता है। स्वैप कार्यान्वयन का उपयोग कुछ मान्यताओं पर भरोसा करने के लिए किया जाता है जो कि btrfs में नहीं हो सकते हैं, जैसे स्वैप फ़ाइल में ब्लॉक संख्याएँ जबकि btrfs में कई उपकरणों के मामले में एक अलग ब्लॉक संख्या मैपिंग होती है। एक नया एपीआई है जिसका उपयोग स्वैप से लेकर ट्राउट पोर्ट के लिए किया जा सकता है; अधिक जानकारी के लिए परियोजना के विचार # स्वैप फ़ाइल समर्थन पर एक नज़र है।

खराब प्रदर्शन के साथ, एक वर्कअराउंड, एक लूप डिवाइस के माध्यम से एक स्वैप फाइल माउंट करने के लिए है।

स्रोत: https://btrfs.wiki.kernel.org/index.php/FAQ#Does_btrfs_support_swap_files.3F


एफएक्यू का यह भी कहना है कि लिनक्स कर्नेल 5.0
phuclv

@phuclv: याय, प्रगति!
mpb

-2

Invalid argumentकहते हैं कि swaponआदेश के लिए तर्क में कुछ गलत है ।

सबसे पहले, पढ़ें man swapon

कोशिश करो sudo swapon swapfile2। मेरे मामले में यह काम करता है।


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