उबंटू वीएम "केवल फाइल सिस्टम पढ़ें" ठीक है?


9

मैं एक उबंटू सर्वर वर्चुअल मशीन पर VMWare उपकरण स्थापित करने जा रहा था, लेकिन मैं / mnt निर्देशिका में cdrom निर्देशिका बनाने में सक्षम नहीं होने के मुद्दे में भाग गया। मैंने तब यह देखने के लिए परीक्षण किया कि क्या यह केवल एक अनुमति समस्या है, लेकिन मैं होम डायरेक्टरी में एक फ़ोल्डर भी नहीं बना सका। यह बताता है कि यह केवल पढ़ने के लिए फाइल सिस्टम है। मैं लिनक्स के बारे में थोड़ा जानता हूं, और मैं अभी तक इसके साथ सहज नहीं हूं। कोई भी सलाह काफी सराही जाएगी।

टिप्पणी से आवश्यक जानकारी:

उपयोगकर्ता नाम @ सर्वरनाम : ~ $ माउंट
/ देव / sda1 ऑन / टाइप ext4 (आरडब्ल्यू, त्रुटियां = रिमाउंट-आरओ)
पर खरीद / खरीद प्रकार पर खरीद (आरडब्ल्यू)
पर कोई नहीं / एसआईएस प्रकार sysfs (आरडब्ल्यू, नोसेक्स, नोसिड, नोडव)
पर कोई नहीं / sys / fs / fuse / कनेक्शन प्रकार fusectl (rw)
पर कोई नहीं / sys / कर्नेल / डिबग प्रकार debugfs (rw)
पर कोई नहीं / sys / कर्नेल / सुरक्षा प्रकार सुरक्षा (rw)
udv पर / देव प्रकार tmpfs (आरडब्ल्यू, मोड =) 0755)
कोई भी / देव / पीटीएस टाइप डेवपर्स (आरडब्ल्यू, नॉटेसेक, नोसिड, जीआईडी ​​= 5, मोड = 0620)
पर कोई नहीं / देव / शम टाइप tmpfs (आरडब्ल्यू, नोसिड, नोडव)
पर कोई नहीं / var / रन टाइप tmpfs (rw) पर , nosuid, मोड = 0755)
/ var / lock type tmpfs (rw, noexec, nosuid, nodev) पर कोई नहीं
on / lib / init / rw टाइप tmpfs (rw, nosuid, mode = 0755) पर कोई भी नहीं है / binfmt_misc on / proc / sys / fs / binfmt_misc प्रकार binfmt_misc (rw, noexec, nosuid, nodev)

रूट आउटपुट के लिए।

root @ server01: ~ # माउंट
/ देव / sda1 ऑन / टाइप ext4 (आरडब्ल्यू, त्रुटियां = रिमाउंट-आरओ)
पर खरीद / खरीद प्रकार पर खरीद (आरडब्ल्यू)
पर कोई नहीं / एसआईएस टाइप sysfs (आरडब्ल्यू, नोसेक्स, नोसिड, नोडव)
पर कोई नहीं / sys / fs / fuse / कनेक्शन प्रकार fusectl (rw)
पर कोई नहीं / sys / कर्नेल / डिबग प्रकार debugfs (rw)
पर कोई नहीं / sys / कर्नेल / सुरक्षा प्रकार सुरक्षा (rw)
ude पर / देव प्रकार tmpfs (आरडब्ल्यू, मोड =) 0755)
/ dev / pts टाइप डेवपर्स (rw, noexec, nosuid, gid = 5, mode = 0620)
पर कोई भी / dev / shm टाइप tmpfs (rw, nosuid, नोडव)
पर कोई नहीं / var / run टाइप tmpfs (rw ) पर कोई नहीं , nosuid, मोड = 0755)
/ var / lock type tmpfs (rw, noexec, nosuid, nodev) पर कोई नहीं
on / lib / init / rw टाइप tmpfs (rw, nosuid, mode = 0755) पर कोई भी नहीं है / binfmt_misc on / proc / sys / fs / binfmt_misc प्रकार binfmt_misc (rw, noexec, nosuid, nodev)

वैकल्पिक शब्द

वैकल्पिक शब्द


1
क्या आप "माउंट" कमांड के आउटपुट को प्रिंट कर सकते हैं? (कोई मापदंडों की जरूरत नहीं)
15

जवाब में जोड़ा गया। उपयोगी जानकारी माँगने के लिए धन्यवाद।
डेविड

बस सुनिश्चित करने के लिए: "sudo mkdir / mnt / cdrom" विफल रहता है, है ना?
जने पिक्कारनेन

मुझे क्या भ्रमित करता है कि यह कहता है कि यह केवल पढ़ने के लिए फाइल सिस्टम है। कमांड का आउटपुट "rw" बताता है जिसे रीड फाइल सिस्टम लिखा जाता है। तो फाइलसिस्टम ही ठीक होना चाहिए। आप किस फ़ोल्डर में लिखने की कोशिश कर रहे हैं? क्या आप "ls -la <the_folder>" का आउटपुट भी दे सकते हैं?
15

मैंने नीचे एक तस्वीर जोड़ी जो कि अनुरोधित कमांड करने पर मुझे जो मिलती है उसकी एक तस्वीर है। अगर आपको कुछ और करने की जरूरत हो तो मुझे बताएं। :)
डेविड

जवाबों:


16

हालांकि यह एक अपेक्षाकृत पुराना सवाल है, लेकिन जवाब अभी भी वही है। आपके पास एक वर्चुअल मशीन (एक भौतिक होस्ट पर चल रहा है) और कुछ प्रकार के भंडारण (या तो साझा भंडारण - एक एफसी सैन, आईएससीएसआई भंडारण, एक एनएफएस शेयर - या स्थानीय भंडारण)।

वर्चुअलाइजेशन के साथ, कई वर्चुअल मशीनें एक ही समय में एक ही भौतिक संसाधनों तक पहुंचने की कोशिश करती हैं। भौतिक सीमाओं के कारण (पढ़ने / लिखने के कार्यों की संख्या - IOPS; थ्रूपुट; विलंबता) एक ही समय में सभी भौतिक मशीनों के सभी भंडारण अनुरोधों को पूरा करने के लिए एक समस्या हो सकती है। आमतौर पर क्या होता है: आप "एससीएसआई रिट्रीज" देख पाएंगे और अपने वर्चुअल मशीनों के ऑपरेटिंग सिस्टम में एससीएसआई के संचालन को विफल कर सकते हैं। यदि आपको एक निश्चित अवधि में बहुत अधिक त्रुटियां / रिटायरियां प्राप्त होती हैं, तो कर्नेल माउंटेड फाइल सिस्टम को रीड-ओनली सेट करेगा ताकि फाइल सिस्टम को नुकसान से बचाया जा सके।

लंबी कहानी को छोटा करने के लिए: आपका भौतिक भंडारण "शक्तिशाली" पर्याप्त नहीं है। एक ही समय में संग्रहण प्रणाली तक पहुँचने के लिए बहुत सारी प्रक्रियाएँ (वर्चुअल मशीनें) होती हैं, आपकी वर्चुअल मशीनों को स्टोरेज से तेज़ी से प्रतिक्रिया नहीं मिलती है, और फाइल सिस्टम केवल पढ़ने के लिए जाता है।

बहुत सी चीजें नहीं हैं जो आप कर सकते हैं। स्पष्ट समाधान बेहतर / अतिरिक्त भंडारण है। आप लिनक्स कर्नेल में SCSI टाइमआउट के मापदंडों को भी संशोधित कर सकते हैं। विवरण वर्णित हैं, उदाहरण के लिए:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009465

http://www.cyberciti.biz/tips/vmware-esx-server-scsi-timeout-for-linux-guest.html

हालांकि, यह आपकी समस्याओं को केवल "स्थगित" करेगा, क्योंकि कर्नेल को केवल फाइल सिस्टम द्वारा रीड-ओनली सेट करने से पहले अधिक समय मिलता है। (अर्थात, आप समस्या के कारण का समाधान नहीं करते हैं।)

मेरा अनुभव (VMware के साथ कई साल) यह है कि यह समस्या केवल लिनक्स कर्नेल (हम RHEL और SLES का उपयोग कर रहे हैं) के साथ मौजूद है न कि विंडोज सर्वर के साथ। साथ ही, यह समस्या सभी प्रकार के भंडारण पर होती है - FC, iSCSI, स्थानीय भंडारण। हमारे लिए, हमारे आभासी बुनियादी ढांचे में सबसे महत्वपूर्ण (और महंगा) घटक भंडारण है। (हम अब 1 Gbps iSCSI कनेक्शन के साथ HP LeftHand का उपयोग कर रहे हैं, और इसके बाद से अब तक कोई भंडारण समस्या नहीं हुई है। हमने इसकी मापनीयता के लिए LeftHand (पारंपरिक FC- समाधानों पर) को चुना है।


वाह! बहुत बढ़िया जवाब। मैं इस प्रश्न के बारे में पूरी तरह से भूल गया। मैंने आपका उत्तर स्वीकार कर लिया है। जिस डेटासेंटर मैं वर्तमान में काम करता हूं (जो एक बड़ा VMWare पार्टनर है) ने हाल ही में एक हिताची पॉड में अपने स्टोरेज को अपग्रेड किया है। हम वास्तव में IOPs के भार में मदद करने के लिए पर्यावरण में एक और फली जोड़ रहे हैं क्योंकि हमने IOPs के साथ अतिरिक्त मुद्दों में भाग लेना शुरू कर दिया (पूर्व में जोर देकर कहा गया है कि हमें SAN संसाधनों को उन्नत या विस्तारित करने की आवश्यकता है)। पिछले मूत में SO, हमने अपने SAN संसाधनों को फिर से बढ़ाया है।
डेविड

4

एक संभावित व्याख्या यह है कि एक हार्डवेयर समस्या है (आंशिक डिस्क विफलता), और यह कि कर्नेल ने समस्या को कम से कम करने के लिए रूट फाइल सिस्टम को रीड-ओनली जैसे ही समस्या का पता लगाया, उसे हटा दिया। वर्तमान माउंट विकल्पों की जांच करने का एक और अधिक विश्वसनीय तरीका है cat /proc/mounts( grep ' / ' /proc/mountsरूट फाइलसिस्टम के लिए, एक rootfs / …पंक्ति को अनदेखा करें जो बूट का एक गुण है)। आप संभवतः ऐसा पाएंगे कि rw,errors=remount-roयह बदल गया है ro(अन्य विकल्पों को इसके अलावा प्रदर्शित किया जा सकता है)।

कर्नेल लॉग में शायद संदेश होता है Remounting filesystem read-only, डिस्क एक्सेस त्रुटियों से पहले। लॉग आम तौर पर रहते हैं /var/log/kern.log, हालांकि अगर यह अब केवल पढ़ने के लिए फाइलसिस्टम पर है तो संदेश वहां दिखाई नहीं देगा, हालांकि पूर्ववर्ती त्रुटियां होनी चाहिए। आप dmesgकमांड के साथ नवीनतम कुछ कर्नेल त्रुटियां भी देख सकते हैं ।

एक तरफ, उबंटू के तहत, माउंट पॉइंट्स के लिए सामान्य स्थान (डेस्कटॉप इंटरफ़ेस द्वारा उपयोग किया जाता है) के अंतर्गत है /media(उदाहरण के लिए /media/cdrom0), हालांकि आप उपयोग कर सकते हैं /mntया /mnt/cdromयदि आप चाहें।

¹ से रिपोर्ट यदि रूट फाइलसिस्टम केवल-पढ़ने के लिए है, तो अद्यतित नहीं रखा जा सकता है। mount/etc/mtab/etc/mtab


खराब हार्डवेयर के बारे में केवल यह है कि यह एक वर्चुअल मशीन है, इसलिए यह हार्डवेयर समस्या नहीं हो सकती क्योंकि भौतिक मेजबानों पर सैकड़ों वर्चुअल मशीन हैं और मेरा केवल एक मुद्दा है। मैं कर्नेल लॉग की जांच करूंगा और प्रश्न में इसका स्क्रीनशॉट लगाने की कोशिश करूंगा।
डेविड

यदि आपकी वर्चुअल हार्ड डिस्क पर आकार की सीमा है, और यह पूर्ण है, तो उबंटू लिखने में विफल रहेगा, जैसा कि ऊपर दिखाया गया है। आप जाँच कर सकते हैं।
कार्लफ

@ डेविड: लॉग दिखाते हैं कि लिनक्स में हार्डवेयर की समस्या थी, केवल हार्डवेयर आभासी है। मुझे कार्लफ की परिकल्पना अत्यधिक प्रशंसनीय लगती है।
गिल्स एसओ- बुराई को रोकना '

3

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


1

स्पष्ट हो सकता है, लेकिन क्या आप ऐसा करने की कोशिश करते समय "रूट" उपयोगकर्ता हैं? / mnt रूट के स्वामित्व में है और रूट द्वारा केवल लेखन योग्य है। आप यह देखने के लिए भी जांच कर सकते हैं कि क्या आपके पास बूट पर त्रुटियाँ हैं। ऊपर दिया गया आपका आउटपुट कहता है कि / (और इस तरह / mnt) को केवल तभी पढ़ा जाना चाहिए जब बूट प्रक्रिया त्रुटियां देखती है। आप इसे बदल सकते हैं (यानी आर / डब्ल्यू के रूप में रिमाउंट करते हुए) माउंट कमांड के साथ, लेकिन मैं ऐसा नहीं करूंगा जब तक कि आपको यकीन न हो कि जो भी त्रुटि हुई है वह गंभीर नहीं है।


जब मैं ऐसा कर रहा था तो शायद मैं जड़ से नहीं रहा, लेकिन मुझे लगता है कि यह वही है। सुनिश्चित करने के लिए रूट आउटपुट पहले आउटपुट से नीचे है।
डेविड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.