LiveCD या रिबूटिंग के बिना फेडोरा में रूट LVM विभाजन का आकार कैसे बदलें


24

मेरे पास एक वर्चुअल मशीन है जिसकी हाल ही में इसकी डिस्क छवि 20GB से बढ़कर 50GB हो गई थी, और fdisk -lसत्यापित करता है कि VM इस नए आकार को देख सकता है। अब मुझे अतिरिक्त 30GB भरने के लिए अपने रूट LVM विभाजन का आकार बदलने की आवश्यकता है।

मुझे LVM के आकार बदलने के बारे में कई लेख मिले हैं , लेकिन कुछ ऐसे हैं जो रूट विभाजन को कवर करते हैं और दावा करते हैं कि आपको LiveCD से बूट करने की आवश्यकता है। क्या सर्वर को डाउन किए बिना ऐसा करने का कोई तरीका है? सर्वर महत्वपूर्ण है, इसलिए मैं डाउनटाइम कम करना चाहूंगा।

संपादित करें: का आउटपुट fdisk -l:

[root@fedora-host ~]# sudo fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097c90

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    83886079    41430016   8e  Linux LVM

Disk /dev/mapper/VolGroup-lv_root: 36.1 GB, 36104568832 bytes
255 heads, 63 sectors/track, 4389 cylinders, total 70516736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_root doesn't contain a valid partition table

Disk /dev/mapper/VolGroup-lv_swap: 6308 MB, 6308233216 bytes
255 heads, 63 sectors/track, 766 cylinders, total 12320768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_swap doesn't contain a valid partition table

संपादित करें: मैं भौतिक विभाजन का आकार कैसे बदलूं? fdisk मुक्त स्थान देख सकता है, लेकिन मैं इसका उपयोग करने के लिए प्राथमिक LVM विभाजन का आकार बदलना नहीं जानता। मैंने एक LiveCD में बूटिंग की कोशिश की और parted'd resizeकमांड का उपयोग किया , लेकिन यह सब मुझे देता है "फ़ाइल सिस्टम का पता लगाने में असमर्थ"। मुझे यह मार्गदर्शिका मिली , जिसमें कहा गया है कि मुझे विभाजन को हटाने और सही आकार के साथ एक नया बनाने की आवश्यकता है, लेकिन यह बहुत खतरनाक लगता है।

फाइनल एडिट: resizeएलवीएम विभाजन का आकार बदलने में पार्टेड कमांड अजीब तरह से असमर्थ है। जाओ पता लगाओ। इसके बजाय, मैंने बस पुराने विभाजन को हटा दिया है और नई श्रृंखला के साथ एक नया बनाया है, जैसा कि ऊपर दिए गए लिंक में उल्लिखित है, और जिसने LVM विभाजन को सही ढंग से आकार दिया है। मैंने तब LVM विभाजन के अंदर वॉल्यूम और फाइल सिस्टम का आकार बदलने के लिए नीचे दी गई सलाह का पालन किया ।


हमें fdisk का उत्पादन दिखाएँ - l आपने विभाजन का आकार बदला है और न कि केवल वॉल्यूम सही है?
ज़ॉडेचेस

@Zoredache, मैंने उस आउटपुट को प्रश्न में जोड़ा है।
सेरिन

जवाबों:


32

आप ऑनलाइन एक लॉजिकल वॉल्यूम बढ़ा सकते हैं। आपको इसे सिकोड़ने के लिए इसे अनमाउंट करना होगा (जिसके लिए LiveCD / रेस्क्यू मोड की आवश्यकता होती है।)

  1. pvresize /dev/sda2(अपना LVM विभाजन मान रहा है sda2। आवश्यकतानुसार बदलें।)
  2. lvextend /dev/mapper/root -l+100%FREE (या, जो भी आपके रूट लॉजिकल वॉल्यूम को कहा जाता है।)
  3. resize2fs /dev/mapper/root (ext2 / 3/4 मानकर)

1
मैं व्यक्तिगत रूप से पसंद करता हूं lvextend -L [size][unit] /dev/group/volume, यदि केवल इसलिए कि मैं निर्दिष्ट करके 10 गीगाबाइट की मात्रा बढ़ा सकता हूं-L +10G
ह्यूबर्ट करियो

हाँ, लेकिन ओपी ने पूछा; Now I need to resize my root LVM partition to fill the extra 30GB.(जो कि उपलब्ध रिक्त स्थान द्वारा तार्किक आयतन को बढ़ाना है।)
आरोन कोपले

"नया आकार (1076 extents) मौजूदा आकार (1076 extents) से मेल खाता है"
Cerin

7
मुझे लगा कि यह चाल साफ-सुथरी थी: यदि आप -rविकल्प जोड़ते हैं lvextend, तो यह fsadmएफएस को आकार देने के लिए हुक करेगा । यह तीसरा चरण निरर्थक होगा।
जोडी सी

3
इस उत्तर पर ध्यान दें कि विभाजन मुक्त स्थान को भरने के लिए पहले ही विस्तारित किया जा चुका है और बस तार्किक संस्करणों को अद्यतन करने की आवश्यकता है। pvresize /dev/sda2आदेश / dev / sda2 विभाजन जब तक कुछ भी नहीं जुदा या fdisk साथ आकार दिया जा चुका है करता है। मुझे fdisk के साथ मेरा आकार बदलना था क्योंकि मेरे सिस्टम में भाग नहीं दिखाया जाएगा या एक आकार परिवर्तन आदेश नहीं है। Fdisk आकार बदलने में विभाजन को हटाना और फिर से बनाना शामिल है।
जेसन

2

क्या आपका सिस्टम वास्तव में 20 से 50 जीबी में बदल गया है? यह वास्तव में अजीब लगता है क्योंकि आपका sda2 डिवाइस ~ 40GB है, lv_root 36GB दिखाता है, और स्वैप 6GB दिखाता है।

fdisk -lका कुल क्षेत्रों का आपका आउटपुट दिखाता /dev/sdaहै 104857600। पिछले द्वारा इस्तेमाल किया क्षेत्र /dev/sda2है 83886079। यह मुझे बताता है कि आपने ड्राइव पर सभी उपलब्ध स्थान का उपयोग करने के लिए विभाजन आकार को समायोजित नहीं किया है। Pvresize कमांड पार्टीशन टेबल को नहीं बदलता है। आपको पहले विभाजन तालिका को बदलना होगा।


1

स्थापित करें। रूट के रूप में चलाएँ (यदि ssh-x या x2go रिमोट का उपयोग करें)। विभाजन का चयन करें। यह अंत में (दाईं ओर) अतीत को मुक्त स्थान दिखाना चाहिए। यदि ऐसा नहीं होता है, तो आपको वर्चुअल डिवाइस के नए आकार को देखने के लिए अपने वर्चुअल मशीन के लिए रीबूट करना होगा। कि सिस्टमड के साथ न्यूनतम डाउनटाइम होना चाहिए।

राइट क्लिक करें और आकार बदलें का चयन करें। डिस्क के अंत में अंत खींचें। सुनिश्चित करें कि आप शुरुआत को नहीं छूते हैं। gparted आकार बदलने के दौरान एक विभाजन को स्थानांतरित करने में सक्षम है, लेकिन यह निश्चित रूप से एक रनिंग सिस्टम को नष्ट कर देगा। लेकिन अंत हिलना ठीक है। यह सुनिश्चित करने के लिए कि आप विस्तार कर रहे हैं और विभाजन को आगे नहीं बढ़ा रहे हैं, लंबित ऑपरेशन की समीक्षा करें । अप्लाई पर क्लिक करें। gparted डिस्क पर विभाजन को बदल देगा, फिर विभाजन तालिका को फिर से विभाजित करने के लिए कर्नेल ioctl जारी करें, साथ ही साथ लाइव ब्लॉक डिवाइस के आकार को बदल दें। फिर, क्योंकि यह देखता है कि यह एक LVM PV है, यह आपके लिए pvresize चलाता है। बाहर निकलें gparted, और vgs अब आपका नया स्थान दिखाता है।

मैंने सुना है कि अफवाहें जो जुदा कर सकती हैं वह सब एक जीयूआई के ओवरहेड के बिना हो सकता है, लेकिन मैं कभी भी वूडू का पता नहीं लगा सका हूं। जुदा होना सबसे खराब सीएलआई इंटरफेस में से एक है जिसका मैंने कभी उपयोग करने की कोशिश की है।

Fdisk का उपयोग न करें, आपको आकार बदलने के लिए विभाजन को हटाना और पुनः लोड करना होगा, और डिफ़ॉल्ट रूप से यह लिखने पर LVM2 हस्ताक्षर मिटा देगा। मुझे लगता है कि मैंने उस विनाशकारी व्यवहार को बंद करने के लिए एक "उन्नत" विकल्प देखा, लेकिन मैंने कभी इसका परीक्षण नहीं किया।

आप cfdisk (शाप fdisk) भी आजमा सकते हैं। यह एक प्रयोग करने योग्य विभाजन का आकार बदल सकता है। यह मैन्युअल रूप से pvresize चलाने के लिए पर्याप्त है, और कर्नेल को विभाजन तालिका को फिर से पढ़ने के लिए बताने के लिए एक कमांड है। लेकिन मुझे यह सुनिश्चित करने के लिए परीक्षण करना होगा कि यह fdisk की तरह LVM हस्ताक्षर नहीं मिटाएगा।


0

यदि LVM भौतिक आयतन एक विभाजन पर है, तो नहीं, आप इसे रिबूट किए बिना नहीं बदल सकते।

आप ड्राइव पर विभाजन तालिका को संपादित कर सकते हैं, लेकिन जब तक आप रिबूट नहीं करते तब तक लिनक्स इसका उपयोग करने से इनकार कर देगा।

यदि आप XFS का उपयोग कर रहे हैं, तो स्विच resize2fsकरें xfs_growfs

आप उपयोग किए जाने वाले वॉल्यूम समूह में पीवी और आपके द्वारा उपयोग किए जाने वाले एलवी को प्रदर्शित कर सकते हैं pvsऔर lvs

कच्चे डिस्क पर पी.वी.

pvresize /dev/sda
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

एक विभाजन पर पी.वी.

सबसे पहले आप विभाजन, उपयोग आकार बदलने के लिए है parted, fdiskया उस के लिए इसी तरह के उपकरण। याद रखें कि वे उपकरण केवल विवरण को संपादित करते हैं जहां विभाजन हैं, वे डेटा को इधर-उधर नहीं करते हैं। दूसरे शब्दों में, आसानी से आप डिस्क पर केवल अंतिम विभाजन का विस्तार कर सकते हैं। फिर अपनी मशीन को रिबूट करें और उसके बाद आपको एलवीएम को सूचित करने में सक्षम होना चाहिए कि उसके पास अतिरिक्त स्थान उपलब्ध है:

pvresize /dev/sda2
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

Gparted Live CD का उपयोग करते हुए, sudo pvresize /dev/sda2"1 भौतिक आयतन (आकार) का आकार बदलता है " रिपोर्ट करता है, लेकिन sudo lvextend /dev/mapper/VolGroup-lv_root -L +10Gत्रुटि के साथ "अपर्याप्त मुक्त स्थान: 320 अतिरिक्त की आवश्यकता होती है, लेकिन केवल 0 उपलब्ध है"। sudo fdisk -lऐसी रिपोर्टें जो मेरे पास 54G उपलब्ध हैं, जबकि sudo pvdisplayरिपोर्ट्स केवल 40G उपयोग में हैं। Lvextend क्यों विफल हो रहा है?
सेरिन

1
@ कैरिन, आप एक विभाजन पर एक पीवी के लिए पहले बयानों को याद करते हैं। सबसे पहले आपको विभाजन का आकार बदलना होगा, उसके लिए parted, fdisk या समान टूल का उपयोग करना होगा
Zoredache

@Zoredache, ठीक है, ठीक है, यह मूल रूप से मेरा पूरा सवाल है। मुझे नहीं पता कि ऐसा कैसे करना है। मैंने अभी-अभी एक Gparted LiveCD में बूट किया और resizeप्राथमिक विभाजन आकार को बढ़ाने के लिए parted की कमांड का उपयोग करने का प्रयास किया , लेकिन इसने मुझे "फाइलसिस्टम का पता नहीं लगा सका" त्रुटि दी। आप विभाजन या fdisk का उपयोग करके विभाजन का आकार कैसे लेते हैं?
सेरिन

@ केरिन: एसएफ को खोजें या एक और सवाल पूछें
ह्यूबर्ट

0

अगर यह आपके डिस्ट्रो पर उपलब्ध है, तो मैं ssm (सिस्टम-स्टोरेज-मैनेजर) की जाँच करने पर विचार करूँगा।

थोड़ी और जानकारी के लिए इसे देखें : /unix//a/293173

ssm अपने आप को सब कुछ करने के बिना तार्किक संस्करणों का आकार बदलना आसान बनाता है।

मैं अपने ओएस को रिबूट करने और पहले रूट के रूप में लॉग इन करने के बाद इसके साथ अपने घर के विभाजन का विस्तार करने के लिए उपयोग करने में सक्षम था। (कुल में दो बार रिबूट करना पड़ा, लेकिन यह अंत में काम किया और अब मेरे / घर के घर में अतिरिक्त 50G उपलब्ध है।)


0

25 हाउटो के संयोजन के बाद, मेरे पास आखिरकार यह समाधान है। इसके लिए कोई लाइव सीडी की आवश्यकता नहीं है, यह पूरी तरह से मक्खी पर है।

चरण 1. विभाजन के साथ विभाजन को प्रारूपित करें (कोई गिनी नहीं)। इस उदाहरण में डिस्क का अधिकतम आकार वर्चुअल बॉक्स में 8 जीबी से 32 जीबी तक बढ़ गया।

    # parted
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
       ....
    (parted) mkpart primary ext2 8590 100%
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
         3      8590MB  34,4GB  25,8GB   primary  ext2             lba
       ....
    (parted) set 3 lvm on
    (parted) set 3 lba off
    (parted) print
       ....
         3      8590MB  34,4GB  25,8GB   primary  ext2             lvm
       ....
    (parted) quit

चरण 2. नए विभाजन के आधार पर एक भौतिक वॉल्यूम बनाएं

# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

चरण 3. वॉल्यूम समूह में भौतिक वॉल्यूम जोड़ें। एक सादे फेडोरा में 28 सर्वर स्थापित वॉल्यूम समूह को फेडोरा कहा जाता है।

# vgextend fedora /dev/sda3
  Volume group "fedora" successfully extended

चरण 4. वॉल्यूम समूह में उपलब्ध स्थान को तार्किक वॉल्यूम में जोड़ें। एक सादे फेडोरा में 28 सर्वर स्थापित लॉजिकल वॉल्यूम को रूट कहा जाता है।

# lvextend -l+100%FREE /dev/fedora/root
  Size of logical volume fedora/root changed from <6,20 GiB (1586 extents) to 30,19 GiB (7729 extents).
  Logical volume fedora/root successfully resized.

चरण 5. अतिरिक्त स्थान का उपयोग करने के लिए तार्किक मात्रा में फाइलसिस्टम को बताएं। फेडोरा में फाइलसिस्टम xfs है।

ध्यान! xfs_growfs फ़ाइल सिस्टम की पहचान करने के लिए आरोह बिंदु का उपयोग करता है, न कि उस फ़ाइल सिस्टम का नाम जिसे आप df आउटपुट में पाते हैं !!!!!!!

कमांड 'xfs_growfs / dev / mapper / fedora-root' आपको बताएगा / dev / mapper / फेडोरा-रूट माउंटेड XFS फाइलसिस्टम नहीं है। यदि आप किसी भिन्न फाइल सिस्टम का उपयोग कर रहे हैं तो https://www.tldp.org/HOWTO/LVM-HOWTO/extendyv.html देखें

# xfs_growfs /
    data blocks changed from 1624064 to 7914496

चरण 6. आनंद लें

# df
FileSystem               1K-blocks      Used   Available used% Mounted on
....
/dev/mapper/fedora-root   31647744   6492840    25154904  21% /
/dev/sda1                   999320    125576      804932  14% /boot
....

-1

Testdisk का प्रयास करें

sudo dnf install testdisk

सुडोल टेस्टिकल

बस एक लॉग फ़ाइल सेट करें तो यह विभाजन को सूचीबद्ध करेगा, - मीडिया / विभाजन का चयन करें - फिर टाइप करें - और विश्लेषण करें - त्वरित खोज - चयन करें और लिखें

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