सवाल रीबूट किए बिना विभाजन तालिका को दोहराएं?


कभी-कभी, जब किसी डिस्क पर विभाजन के साथ आकार बदलना या अन्यथा मिलना, cfdisk कहेंगे:

Wrote partition table, but re-read table failed. Reboot to update table.

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

नोट: कृपया मान लें कि मैं जो भी विभाजन वास्तव में संपादित कर रहा हूं, वह खोला, घुड़सवार या अन्यथा उपयोग में नहीं है।


अद्यतन करें:

सीएफडीस्क का उपयोग करता है ioctl(fd, BLKRRPART, NULL) विभाजन तालिका को फिर से पढ़ने के लिए लिनक्स को बताने के लिए। अब तक सुझाए गए दो अन्य टूल्स (hdparm -z  DEVICE, sfdisk -R  DEVICE) बिल्कुल वही काम करता है। partprobe  DEVICE दूसरी ओर, कमांड, बीएलकेपीजी नामक एक नए ioctl का उपयोग करने लगता है, जो बेहतर हो सकता है; मुझे नहीं पता। (यदि बीएलकेपीजी विफल रहता है तो यह BLKRRPART पर भी वापस आ जाता है।)

बीएलकेपीजी एक "यह विभाजन बदल गया है; यहां नया आकार है" ऑपरेशन, और ऐसा लगता है partprobe इसे डिवाइस पर सभी विभाजनों पर अलग-अलग कहा जाता है, इसलिए यदि व्यक्तिगत विभाजन का उपयोग नहीं किया जाता है तो इसे काम करना चाहिए। हालांकि, मुझे इसे आजमाने का मौका नहीं मिला है।


64
2017-07-05 12:10


मूल


man sfdisk कहते हैं: Since version 2.26 sfdisk no longer provides the -R or --re-read option to force the kernel to reread the partition table. Use blockdev --rereadpt instead. - Tom Hale


जवाब:


आईएमएचओ सबसे विश्वसनीय / सर्वोत्तम जवाब है

partprobe /dev/sdX

63
2017-07-05 12:44



मैंने अभी उबंटू सर्वर के तहत एक देव का विस्तार किया, यह देव एक हार्डवेयर RAID है। RAIDController का उपयोग कर अंतर्निहित RAID का विस्तार करने के बाद, मैंने फाइल सिस्टम को तोड़ दिया और "partprobe / dev / sda" को आजमाया - यह काम नहीं किया। "fdisk -l" अभी भी पुराने आकार दिखाया गया है। मैं फिर "hdparm -z / dev / sda" भाग गया और यह चाल है। मैं फिर बिना किसी रीबूट के अपने फाइल सिस्टम को माउंट और आकार बदल सकता था। मुझे पता है कि मैं वाईएमएमवी के अलावा वास्तव में कुछ भी नहीं जोड़ रहा हूं। - Mwuanno
मैं सेंटोस 6.5 पर हूं; कर्नेल 2.6.32। निम्नलिखित सभी आदेशों ने कर्नेल रीड विभाजन नहीं बनाया: - partprobe / dev / sda (चेतावनी: कर्नेल फिर से पढ़ने में विफल रहा) - Max
@ मैक्स, मैंने यह भी देखा है कि कभी-कभी पार्टप्रोब भी एक त्रुटि को प्रिंट करता है जो यह काम नहीं करता है। कभी-कभी रीबूट निश्चित होने का एकमात्र विकल्प होता है। हालांकि कई बार यह मेरे लिए काम करता प्रतीत होता है। - Matt
यह मेरे लिए काम नहीं करता था क्योंकि कुछ निर्देशिका अभी भी --बिंद के साथ घुड़सवार थीं। विभाजन स्वयं ही पहले से ही अनमाउंट किया गया था लेकिन उस विभाजन को इंगित करने वाले बाध्य-माउंट अभी भी वहां थे। अजीब बात है कि umount काम किया और partprobe नहीं, लेकिन बाध्य-माउंट भी उछाल के बाद, मैं भी डिस्क का विभाजन कर सकता था। - Ethan Leroy
यह मेरे साथ फ्लैगेलेट करने के बाद CentOS 6 पर मेरे लिए काम किया kpartx तथा udevadm trigger 10 मिनट के लिए। धन्यवाद! - Mike Andrews


विभाजन तालिका जानकारी को दोबारा पढ़ना हमेशा काम नहीं करता है, लेकिन कोशिश करें

hdparm -z /dev/sda

या

sfdisk -R /dev/sda

यदि यह काम करता है / proc / विभाजन में मान बदल जाएगा।


17
2017-07-05 12:13



hdparm मेरे लिए काम किया। - Prof. Falken
sfdisk -R विकल्प मौजूद नहीं है। - Matt
इस बात पर ध्यान दिया जाना चाहिए कि hdparm कमांड केवल तभी काम करेगा जब विभाजन को आरोहित नहीं किया जाता है। - hayavuk
... वास्तव में, ऐसा लगता है sfdisk -R उपयोग-लिनक्स 2.24.2 और 2.26.1 के बीच कहीं हटा दिया गया था - Charles Duffy
man sfdisk कहते हैं: Since version 2.26 sfdisk no longer provides the -R or --re-read option to force the kernel to reread the partition table. Use blockdev --rereadpt instead. - Tom Hale


Centos7 पर:

इसके अनुसार https://access.redhat.com/solutions/199573

तुम्हें कोशिश करनी चाहिए :

partx -u <partition>

यह मेरे लिए काम किया।


9
2017-09-15 09:33



यही वह अकेला था जो मेरे लिए काम करता था। शेयर करने के लिए बहुत - बहुत शुक्रिया!! आप के लिए दिन का शीर्ष, महोदय! - NotGaeL


नोट: कृपया मान लें कि मैं इनमें से कोई भी विभाजन वास्तव में संपादित नहीं कर रहा हूं   खुले, घुड़सवार या अन्यथा उपयोग में हैं।

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


7
2017-07-05 12:32



कुछ विभाजन उपयोग में हो सकते हैं, लेकिन उनमें से कोई भी नहीं है जिसे मैं वास्तव में बदल रहा हूं, हालांकि वे एक ही विभाजन तालिका में हो सकते हैं। - Teddy
कर्नेल वह स्मार्ट नहीं है। यदि तालिका में कोई भी विभाजन उपयोग में है, तो कर्नेल पुन: स्कैन नहीं करता है। दूसरी दिशा में गलत होने से विनाशकारी हो सकता है, इसलिए यह सुरक्षित है। यदि आप इच्छानुसार विभाजन के साथ सामान भरना चाहते हैं, तो LVM का उपयोग करें। - womble♦


यह विभाजन पर आधारित नहीं है जिसे आप संपादित कर रहे हैं।

मान लीजिए कि आपके पास केवल एक हार्डडिस्क है (/dev/sda) और दो विभाजन (/dev/sda1, /dev/sda2) और आपने केवल एक विभाजन को घुमाया है (/dev/sda1)। यदि आप अन्य विभाजन के बारे में कुछ भी हटाते या बदलते हैं जो कि आरोहित नहीं है (/dev/sda2) आपको त्रुटि मिलेगी कि विभाजन तालिका को फिर से पढ़ना विफल रहा और कर्नेल पुरानी तालिका का उपयोग करेगा।

लेकिन अगर आपके पास दो हार्डडिस्क हैं (/dev/sda, /dev/sdb) और इनमें से कोई भी विभाजन नहीं (/dev/sdb) उपयोग में हैं। फिर आप विभाजन को जोड़ / हटा / आकार बदल सकते हैं / संपादित कर सकते हैं /dev/sdb और वे बिना किसी समस्या के फिर से पढ़े जाएंगे। लेकिन भले ही परिवर्तन के दौरान / dev / sdb का एक विभाजन आरोहित किया गया हो। फिर कर्नेल पुरानी टेबल का उपयोग जारी रखेगा।


6
2017-07-05 16:39





मैं (मूल प्रश्नकर्ता) कुछ दिनों पहले एक स्थिति थी जब अन्य उत्तरों में से कोई भी नहीं (सहित partprobe /dev/sdX, वर्तमान में स्वीकार्य और उच्चतम वोट वाले उत्तर) काम किया। क्या किया था काम, हालांकि, यह था:

blockdev --rereadpt /dev/sdX

(मुझे नहीं पता कि यह क्यों काम करता है और दूसरों ने नहीं किया, लेकिन मुझे खुशी है कि यह काम करता है, क्योंकि यह मुझे व्यस्त सर्वर पर रीबूट बचाता है।)


5
2017-08-28 19:15





मैं सेंटोस 6.5 x64 पर हूं; कर्नेल 2.6.32। और मैं आकार बदलने के लिए fdisk चाल का परीक्षण कर रहा हूँ।

/dev/sda1 /boot
/dev/sda2 /

निम्नलिखित सभी आदेश दिए गए नहीं कर्नेल रीड विभाजन बनाएं:

  • partprobe / dev / sda   (चेतावनी: कर्नेल फिर से पढ़ने में विफल रहा ....)
  • hdparm -z / dev / sda (BLKRRPART विफल: डिवाइस या संसाधन व्यस्त)
  • blockdev -rereadpt / dev / sda (BLKRRPART विफल: डिवाइस या संसाधन व्यस्त)
  • sfdisk -R / dev / sda (BLKRRPART विफल: डिवाइस या संसाधन व्यस्त)

मुझे अभी भी इसे काम करने के लिए रीबूट की जरूरत है


5
2018-05-29 08:07



इनमें से कोई भी मेरे लिए काम नहीं करता है (प्रॉक्सीमॉक्स वीएम, सेंटोस 7, एक्सएफएस विभाजन, कोई एलवीएम)। @uus उत्तर ने काम किया, हालांकि: serverfault.com/a/722386/102252 - NotGaeL
उपरोक्त सभी आदेश मेरे लिए भी काम नहीं करते थे। - Fadi Asbih
मुझे लगता है कि कर्नेल 2.6.32 में समस्या है, मैंने इन मशीनों को अन्य मशीनों पर पहले इस्तेमाल किया था, यह पुराने विभाजन के बीच उच्च संख्या वाले विभाजन जोड़ते समय भी ठीक काम करता था। i.e. sdb1 sdb2 sdb3 - sdb2 हटाएं, फिर sdb1 sdb4 sdb5 sdb3। उपर्युक्त के अलावा, partx, kpartx, blockdev भी काम नहीं करता था। - sdkks


आप यह भी कोशिश कर सकते हैं:

echo 1 > /sys/block/sdX/device/rescan

(लेकिन काम नहीं करेगा, नीचे टिप्पणी देखें)


0
2017-12-29 19:11



यह विभाजन तालिका को दोबारा नहीं पढ़ता है। यह सिर्फ ज्यामिति जानकारी, कैश मोड इत्यादि अपडेट करता है। एससीएसआई IDENTIFY_DRIVE जारी किया जा रहा है। - Dmitri Chubarov


kpartx -a <partition> नए बनाए गए विभाजन पर दो बार चलाया जा सकता है .... सिस्टम को रिबूट करने के बजाए।


0
2018-03-03 19:08



दो बार? क्या आप भी "sync; sync; sync"? मैं अंधविश्वास गंध ... - Teddy
मुझे लगता है कि यह अंधविश्वास इस तथ्य से आया है कि आप दूसरी सिंक करके अपनी सिंक जांचते हैं या नहीं। सिवाय इसके कि दूसरा ऑपरेटर के लिए केवल मूल्यवान है, यह पुष्टि करने के लिए कि यह तुरंत संकेत देता है, इस प्रकार पहले सिंक को अपेक्षित के रूप में पूरा किया जाता है। बाद में कुछ ब्लॉग और ट्यूटोरियल, और .... - J. M. Becker


Udev सेवा चलाना जारी रखना याद रखें। यह विशेष रूप से उपयोगी होता है जब पार्टप्रोब, एचडीपार्म, ब्लॉकडेव, और कई अन्य कमांड्स कोई फर्क नहीं पड़ता कि डिवाइस फ़ाइलों / dev / निर्देशिका में कौन सी डिवाइस उपलब्ध हैं।


0
2017-12-19 21:12





यदि आप 'मैन ऑराक्लाज्म-स्कैंडिस्क' के लिए मैनपेज पढ़ते हैं तो आप नीचे दिए गए पाठ को नोट करेंगे। ऑरैकलाज्म / proc / विभाजन को स्कैनिंग के स्रोत के रूप में उपयोग कर रहा है। स्कैंडिस्क करने से पहले आपको अपने कच्चे डिवाइस / proc / विभाजन में सूचीबद्ध करना होगा। / Etc / sysconfig / oracleasm में आपके द्वारा रखे गए स्कैनरॉर्डर और स्कैन एक्सक्लूस पैरामीटर / proc / विभाजन (!!!!) में पाए गए नामों से संबंधित हैं।

---------- आदमी oracleasm- scandisks ------ ...

स्कैनिंग कैप्चर कैसे करें        स्कैन चार बुनियादी चरणों में आगे बढ़ता है।

   First, the list of disks to scan is created. If disks were specified on the command line, this is the list.
   If not, /proc/partitions is read, and each block device is added, subject to the -o and -x options.

   Second, the partition tables of each disk in the scan are reloaded unless the -s option was specified. Any
   disks that no longer exist are dropped.

   Third, the list of disks is recreated based on the new partition tables.

   Finally, each disk in the list is checked to see if it is marked for ASM use. Disks that are marked are
   instantiated.

-3
2018-04-26 16:58



... उन्होंने उपयोग के बारे में कुछ भी नहीं बताया है oracleasm-scandisks - voretaq7