ฉันจะขยายขนาดพาร์ติชัน ext4 บนเดเบียนได้อย่างไร


26

ฉันมีไดรฟ์ที่มีการกำหนดค่านี้:

fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000f1b8b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2612    20971520   83  Linux
/dev/sda3           60736       60801      525312   82  Linux swap / Solaris

มีพื้นที่ที่ไม่ได้จัดสรร 478GB ฉันจะเพิ่มพื้นที่นี้ไปยัง / dev / sda1 ได้อย่างไรโดยไม่สูญเสียข้อมูลที่อยู่ใน / dev / sda1 ปัจจุบัน (ระบบไฟล์คือ ext4)

หมายเหตุ: มันเป็นเซิร์ฟเวอร์ที่มี SSH เท่านั้นไม่มี GUI สำหรับการทำงานอย่าง gparted


ฉันสามารถ netboot เซิร์ฟเวอร์และใช้งานได้ในขณะที่ไดรฟ์นั้นไม่ได้ต่อเชื่อม
Seb

รายการนี้ได้รับการคุ้มครองหลายครั้งในเว็บไซต์ SE มันจะเป็นการดีที่สุดที่จะทำการวิจัยเพิ่มเติมอีกเล็กน้อยก่อนโพสต์คำถาม
mdpc

นอกจากนี้โปรดดูaskubuntu.com/a/937351/621883โดยเฉพาะคำตอบที่มี growpart และ resize2fs นั้นมีประโยชน์สำหรับฉัน
klor

คำตอบ:


38

fdisk -u /dev/sdaขยายพาร์ทิชัน:

p หากต้องการพิมพ์ตารางพาร์ติชันจดบันทึกหมายเลขเริ่มต้นสิ้นสุดชนิดของ sda1

ลบมันd::

สร้างใหม่ด้วยหมายเลขเดียวกัน (1) เริ่มต้นและพิมพ์ แต่ด้วยจุดสิ้นสุดที่ใหญ่กว่า(ระวังอย่าให้ซ้อนทับกับพาร์ติชันอื่น) ลองจัดแนวสิ่งต่าง ๆ บนขอบเขตเมกะไบต์ที่เป็นจุดสิ้นสุดทำให้เป็นหลายเท่าของ 2048 ลบ 1 เปลี่ยนประเภทหากจำเป็นต้องใช้ด้วยt(สำหรับพาร์ติชันที่ถือครองextXหรือbtrfsระบบไฟล์ค่าเริ่มต้นของ83ดี)

จากนั้นwให้เขียนและqเลิก

ตารางพาร์ติชันจะได้รับการแก้ไข แต่เคอร์เนลจะไม่สามารถนำมาพิจารณาได้เนื่องจากพาร์ทิชันบางส่วนได้รับการติดตั้ง

อย่างไรก็ตามหากพาร์ติชั่นที่ใช้งานไม่ได้มีการขยายเท่านั้นคุณควรจะสามารถบังคับให้เคอร์เนลใช้เลย์เอาต์ใหม่ด้วย:

partx /dev/sda

หากล้มเหลวคุณจะต้องรีบู๊ต ระบบควรบู๊ตได้ดี

จากนั้นปรับขนาดระบบไฟล์เพื่อให้ขยายขอบเขตของพาร์ติชันที่ขยาย:

resize2fs /dev/sda1

ซึ่งext4จะใช้งานได้ดีแม้ใน FS สด


ฉันรู้ว่านี่เก่า แต่จะเก็บข้อมูลถ้าคุณลบพาร์ทิชันหรือไม่
Canadian Luke ติดตั้ง MONICA ใหม่

3
@CanadianLuke ใช่การลบพาร์ติชันใน fdisk จะปรับเปลี่ยนตารางพาร์ติชันเท่านั้น หากคุณสร้างใหม่ขนาดเดียวกันจะไม่มีการเปลี่ยนแปลงเลย ข้อมูลจะไม่เปลี่ยนแปลงเว้นแต่คุณจะลดขนาดพาร์ติชั่นและสร้างโลจิคัลพาร์ติชันหรือพาร์ติชั่นเสริมอีกอันตรงกลางพาร์ติชั่นที่เคยเป็นในกรณีนี้พาร์ติชั่นเรคคอร์ดสำหรับพาร์ติชั่นขยาย / ลอจิคัลนั้น
Stéphane Chazelas

สิ่งนี้ยังใช้งานได้ดีสำหรับพาร์ติชัน ntfs (ด้วยโวลุ่มที่มีอยู่พร้อมข้อมูล)
Kenny Evitt

ฟังดูสมเหตุสมผล แต่ถ้าฉันมี Extended, Linux LVM และ Linux swap / Solaris พาร์ติชั่นซึ่งเริ่มที่ส่วนท้ายของพาร์ติชั่น Linux? ฉันควรจะลบพาร์ติชั่นเหล่านี้>? ฉันกังวลว่าในกรณีนี้ระบบไฟล์จะไม่เริ่มทำงานเนื่องจากอาจใช้ Linux LVM เป็นตัวอย่างในการเริ่มต้นและสิ้นสุดเดียวกัน และฉันไม่ต้องการทำข้อมูลให้หลวมเกินไป
cyan

@cyan การปรับขนาดโลจิคัลวอลุ่ม LVM ด้วย ext4 FS บนมันหรือการปรับขนาดพาร์ติชันที่ใช้เป็นฟิสิคัลวอลุ่มสำหรับ LVM อาจเป็นคำถามที่แตกต่างกันกับโพรซีเดอร์ที่ต่างกัน
Stéphane Chazelas

7

คุณไม่สามารถทำได้อย่างปลอดภัยในขณะที่ติดตั้งพาร์ติชันหมายความว่าคุณต้องบูตพาร์ทิชันอื่นและทำจากที่นั่น

gpartedเป็น GUI ที่ดีและใช้งานง่ายสำหรับจุดประสงค์นี้ ในการแลกเปลี่ยนความคิดเห็นที่ถูกลบของคุณคุณพูดถึงว่ามันจะไม่เริ่มต้นเพราะ "ไม่สามารถเข้าถึงการแสดงผล" - ซึ่งหมายความว่าคุณไม่ได้อยู่ใน X เนื่องจากเป็น GUI มันจะไม่ทำงานหากปราศจากสิ่งนั้น

แน่นอนถ้าคุณไม่มีพาร์ติชั่นอื่นให้ใช้คุณต้องมีซีดีสดหรืออะไรสักอย่าง - ฉันคิดว่าพวกเขามักจะมาพร้อมกับ gparted ทางออกที่ดีที่สุดของคุณน่าจะเป็นไลฟ์ซีดีที่แท้จริงซึ่งดูเหมือนจะมีเวอร์ชั่นล่าสุดที่เสถียร (และจะพอดีกับซีดีซึ่งดีเพราะ "ไลฟ์ซีดี" กำลังกลายเป็น "ไลฟ์ดีวีดี" อย่างรวดเร็ว)

ฉันไม่เคยทำให้เกิดปัญหา แต่แน่นอนว่าสิ่งสำคัญของคุณจะต้องรีบแก้ไขก่อน


ฉันไม่สามารถใช้ gparted ได้เพราะฉันมีสิทธิ์เข้าถึง SSH เท่านั้น (เป็นเซิร์ฟเวอร์หัวขาด) ฉันสามารถยกเลิกการต่อเชื่อม HDD ได้เนื่องจากระบบไม่ทำงานบน / dev / sda
Seb

1
หากคุณไม่สามารถเข้าถึงระบบได้ดังนั้นจึงไม่สามารถถอนการติดตั้งและเปลี่ยนพาร์ติชันได้ฉันคิดว่าคุณโชคไม่ดีหรืออย่างน้อยก็เข้าสู่ดินแดนที่ร่างไม่สมบูรณ์ - เช่นคุณสามารถลองใช้งานได้fdiskในขณะที่ติดตั้ง select (x) pert, (c) hange number ของกระบอกสูบ แต่ฉันไม่ได้ทำสิ่งนี้และจะทำเช่นนั้นหากไม่มีทางเลือกอื่น
goldilocks

ฉันเพิ่งบอกว่าฉันสามารถ unmount พาร์ติชัน ฉันยังสามารถ netboot เซิร์ฟเวอร์ทั้งหมดและไปจากเซิร์ฟเวอร์อื่นซึ่งจะเหมือนกับการใช้ Live CD (เพียงแค่ไม่มี GUI)
Seb

@Seb: ฉันไม่ดีขอโทษ
goldilocks

2

ฉันรู้ว่านี่เป็นปัญหาที่เก่ามาก แต่หลายคนกำลังมองหาวิธีแก้ปัญหานั้น

สำหรับตัวอย่างนี้คุณมีสถานการณ์ทั่วไปดังต่อไปนี้ ที่จุดเริ่มต้นเป็นพาร์ติชันเดียวและในตอนท้ายพาร์ทิชัน swap จะอยู่ มันไม่ดีเพราะ swap สามารถโหลดได้หนักและจุดสิ้นสุดของดิสก์ที่หมุนอยู่นั้นเป็นส่วนที่ช้าที่สุดของมัน สิ่งที่ฉันแนะนำ

  1. สร้างพาร์ติชันสำหรับเริ่มระบบในตอนเริ่มต้น ทำไมที่จุดเริ่มต้น? เพราะเครื่องมือจำนวนมากมีปัญหากับการสิ้นสุดของดิสก์ขนาดใหญ่เหนือสิ่งกีดขวาง 2TB หลังจากบูตพาร์ทิชันควรสลับพาร์ทิชัน นี่คือประสิทธิภาพ ควรใช้ดิสก์ส่วนที่เหลือสำหรับพาร์ติชันอื่น

แต่จะเกิดอะไรขึ้นกับสถานการณ์นี้? ฉันไม่แนะนำให้ขยาย sda1 ผมขอแนะนำให้สร้างพาร์ทิชันอื่น ๆ หลังจาก sda1 & sda2, ติดตั้งเป็นและ/home /usrในไดเรกทอรีนั้นจะถูกจัดเก็บข้อมูลผู้ใช้และระบบส่วนใหญ่และเป็นไปได้ที่จะย้ายข้อมูลอย่างปลอดภัยจากไดเรกทอรีนั้นไปยังพาร์ติชันใหม่

  1. แต่. (ที่สอง "แต่") หากคุณยังต้องการรักษาโครงสร้างปัจจุบันของคุณคุณควรลบพาร์ติชัน swap ออกก่อน คุณควรจะทำ swapoff, /etc/fstabพูดนี้ หาก swapon แจ้งให้คุณทราบ (ดูที่คน) ไม่มีการใช้ swap คุณสามารถลบมันได้โดยใช้เครื่องมือพาร์ติชัน (fdisk หรือคล้ายกัน)

    เมื่อคุณไม่มีพาร์ติชันนี้คุณสามารถขยาย sda1 ของคุณได้ การใช้fdiskคุณควรพิมพ์พาร์ติชันก่อน มันเป็นความทรงจำที่มันเริ่ม ลบพาร์ติชันที่สองโดยใช้ปุ่ม 'd' อย่าตกใจไม่มีอะไรเขียนไว้ในฮาร์ดไดรฟ์ :) หลังจากพิมพ์แล้วคุณจะเห็นว่าไม่มีพาร์ติชั่นอยู่บนดิสก์

    สร้างพาร์ติชันใหม่ต่อไป แต่ต้องระวัง ดูว่าพาร์ทิชันดั้งเดิมเริ่มต้นอย่างไร เขียนหมายเลขเดียวกัน หลังจากนั้นมองไปที่จุดสิ้นสุด fdiskแจ้งให้คุณทราบสำหรับภาคที่มีอยู่ล่าสุด ใช้เครื่องคิดเลขและกำหนดในใจว่าต้องใช้ swap เท่าใดในหน่วยกิโลไบต์ คูณด้วย 2 และลบจำนวนนี้จากหมายเลขเซ็กเตอร์ล่าสุดที่ได้รับแจ้งจาก fdisk สร้างพาร์ติชัน พิมพ์สิ่งนี้ (ยังอยู่ในหน่วยความจำชั่วคราว fdisk) และดูทั้งหมดว่าใช้ได้

    หลังจากกดปุ่ม 'w' นี้จะเป็นการเขียนพาร์ติชันใหม่ไปยังไดรฟ์ คุณจะเห็นข้อมูลทั้งหมดถูกซิงค์หรือการซิงค์ล้มเหลว หากล้มเหลวคุณสามารถเรียกคำสั่ง partx / dev / sda เพื่อทำการซิงค์ หากยังคงล้มเหลวคุณควรเริ่มระบบของคุณใหม่ หลังจากรีบูตคุณได้เตรียมพาร์ติชันที่ใหญ่กว่า แต่ระบบไฟล์ในนั้นยังคงมีขนาดเล็กลง คุณควรปลูกมัน EXT4 สามารถเติบโตได้ทันที :) ใช้resize2fs /dev/sda1สำหรับทำ

    คุณไม่จำเป็นต้องทำการบูทเครื่องใหม่อีกครั้งสุดท้ายคุณควรกู้คืนพาร์ทิชัน swap เพียงใช้ fdisk อีกครั้งสร้างพาร์ติชันใหม่เป็น swap หลังจากเขียน 'w' อุปกรณ์ sda2 จะถูกกู้คืน เตรียมความพร้อมโครงสร้างแลกเปลี่ยนที่มันใช้mkswap /dev/sda2เอาข้อสังเกตสำหรับการแลกเปลี่ยนบนและในที่สุดก็ทำ/etc/fstab swapon -aดูการใช้คำสั่ง swapon หรือคำสั่งด้านบนเปิดใช้งานการสลับ

ฉันรู้ว่ามันเป็นคำอธิบายที่ยาวมาก ฉันหวังว่ามันจะใช้งานได้สำหรับการใด ๆ โปรดสังเกตว่าในความคิดของฉันระบบไฟล์ xfs นั้นดีกว่ามาก แต่น่าเสียดายที่ FS นี้ไม่รองรับการลดขนาดโดยไม่ต้องคัดลอกไปยังที่อื่นชั่วคราว แต่การย่อขนาดนั้นไม่ค่อยได้ใช้ มันดี xfs ใช้สถานที่น้อยมากสำหรับข้อมูลเมตาของเขาและเร็วกว่าในหลาย ๆ ทางเมื่อเทียบกับ ext4

คำแนะนำอื่นให้ใช้ LVM บางส่วนเป็นชั้นกลางในการแบ่งพาร์ติชัน หลังจากนั้นการปรับขนาดจะง่ายขึ้นมาก ประสิทธิภาพเทียบได้แน่นอนคุณสามารถใช้การจัดการ HDD ผสมผสานกันได้ คุณสามารถใช้ในพาร์ทิชันดิบทั่วไปและ LVM


ต้องขอบคุณ slm สำหรับการแก้ไขภาษาที่ดี: D
Znik
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.