Score:0

จะปรับขนาดพาร์ติชันเป็นขนาดสูงสุดบน Debian 8 ได้อย่างไร

ธง us

คำถามของฉันคือจะปรับขนาดพาร์ติชันบน Debian 8 โดยไม่สูญเสียข้อมูลได้อย่างไร ฉันมีพาร์ติชัน 90 GB แต่ดิสก์ของฉันมีพื้นที่ว่าง 150 GB บนเซิร์ฟเวอร์ VPS ดังนั้น 50 GB จึงฟรี และฉันต้องการเพิ่ม 50 GB นี้โดยไม่สูญเสียข้อมูล นี่คือวิธีการนำเสนอ:

2

ฉันได้ลองใช้ ปรับขนาด2fs คำสั่ง แต่สิ่งนี้ไม่ได้ช่วยฉันเพราะมันแสดงข้อผิดพลาด:

ระบบไฟล์มีความยาว n บล็อกแล้ว ไม่มีอะไรทำ!

ฉันได้ขยายพาร์ติชันบน Debian 11 ด้วย resize2fs แล้ว และทุกอย่างเรียบร้อยดี ฉันไม่รู้ว่าทำไม แต่ฉันไม่ต้องการทำงาน

แก้ไข

ป้อนคำอธิบายรูปภาพที่นี่

paladin avatar
id flag
ใช้ตัวจัดการพาร์ติชัน เช่น fdisk หรือ parted, พิมพ์ตารางพาร์ติชันปัจจุบันเป็นไบต์, ลบพาร์ติชันที่คุณต้องการเพิ่ม, สร้างพาร์ติชันใหม่ด้วยค่าเดียวกันกับพาร์ติชันที่ถูกลบ แต่ไบต์สุดท้ายจะใหญ่กว่าในครั้งนี้ บันทึกการเปลี่ยนแปลงพาร์ติชันและออกจากตัวจัดการพาร์ติชันของคุณ ใช้ resize2fs อีกครั้ง **ปล. สร้างข้อมูลสำรองของตารางพาร์ติชั่นเดิมของคุณก่อนที่จะลบอะไร PPS หากคุณสร้างพาร์ติชันใหม่ผิด ข้อมูลของคุณอาจสูญหาย PPPS ใช้ Debian เวอร์ชันใหม่กว่า**
paladin avatar
id flag
PS ปิดใช้งานพาร์ติชัน SWAP ก่อนและลบพาร์ติชัน SWAP ด้วย
pl flag
คุณต้อง (1) ปรับขนาดพาร์ติชันซึ่งต้องการพื้นที่ว่างถัดจาก vda1 (ซึ่งการแลกเปลี่ยนของคุณอยู่ในดิสก์) และต้องดำเนินการในขณะที่ *unmount* สำหรับประเภทระบบไฟล์ส่วนใหญ่ (เป็นของคุณ ต่อ*?) จากนั้นคุณต้อง (2) ปรับขนาดระบบไฟล์
pl flag
โปรดระบุผลลัพธ์ของ `lsblk --fs`
Piotror avatar
us flag
@ บราฮิม vda1 เป็น ext4
Nikita Kipriyanov avatar
za flag
เราเห็นพาร์ติชันสองพาร์ติชัน แต่ไม่ชัดเจนว่าจัดวางบนดิสก์อย่างไร ตัวเลขไม่ตรงกับลำดับบนดิสก์จริงเสมอไป แต่ตรงกับลำดับของรายการในตารางพาร์ติชัน ตัวอย่างเช่น เป็นไปได้ที่จะทำให้ vda2 อยู่ข้างหน้า vda1 บนดิสก์ เพื่อความแน่ใจ แสดง `fdisk -l /dev/vda` (อันที่จริงฉันต้องการทราบว่าคุณควรทำอะไรกับพาร์ติชัน swap นั้นหรือไม่)
Score:1
ธง pl

คุณต้องทำตามรูปแบบดิสก์ของคุณ

(0) ย้ายพาร์ติชั่น swap ออกไปเพื่อให้เหลือพื้นที่สำหรับขยาย vda1; พื้นที่พาร์ติชันจะต้องอยู่ติดกัน เพื่อจุดประสงค์นี้:

  • ปิดการแลกเปลี่ยนด้วย สลับ /dev/vda2 (/dev/vda2 เป็นไฟล์อุปกรณ์สลับของคุณ ตรวจสอบข้อโต้แย้งของฉันเสมอ)
  • ลบพาร์ติชั่น swap โดยใช้ แยกส่วน /dev/vda rm partno ที่ไหน พาร์ทโน เป็นหมายเลขพาร์ติชัน swap ตาม แยกส่วน /dev/vda, (ควร 2 ?)
  • สร้างพาร์ติชัน swap ใหม่ที่ส่วนท้ายของดิสก์ด้วย /dev/parted /dev/vda mkpart -4G -1s. จำนวนลบในที่นี้คือการอ้างอิงจากส่วนท้ายของดิสก์ หมายความว่าพาร์ติชันครอบคลุม ล่าสุด 4GiB ของดิสก์ (-1 วินาที หมายถึงพาร์ติชันสิ้นสุดที่เซกเตอร์สุดท้ายของดิสก์ ซึ่งเป็นไปไม่ได้เนื่องจากจะเขียนทับส่วนหัว GPT รอง ดังนั้น แยกทาง จะแก้ไขจุดเริ่มต้น/จุดสิ้นสุดที่แน่นอนและการจัดตำแหน่งของพาร์ติชัน (คุณจะได้รับแจ้ง) พาร์ติชันจะถูกสร้างขึ้นด้วยหมายเลข 2 เดียวกัน ดังนั้นไฟล์อุปกรณ์จะถูกตั้งชื่อ /dev/vda2. คุณต้องตรวจสอบ
  • เปิดใช้งานการแลกเปลี่ยนอีกครั้งด้วย mkswap /dev/vda2 แล้ว สลับ /dev/vda2
  • ปรับปรุงสายที่มี ประวัติย่อ= ใน /etc/initramfs-tools/conf.d/resume ถ้ามี. บรรทัดนี้ระบุพาร์ติชันที่ใช้สำหรับการไฮเบอร์เนต และระบุด้วย UUID=... หรือ ป้าย=.... คุณสามารถค้นหา UUID พาร์ติชันสลับหรือป้ายกำกับโดยใช้ บลคิด
  • อัปเดตบรรทัดที่อธิบายพาร์ติชัน swap ในตาราง fs /etc/fstab. เพียงอัปเดต UUID ป้ายกำกับหรือหมายเลขพาร์ติชัน (ขึ้นอยู่กับวิธีกำหนดพาร์ติชัน swap ในไฟล์)

เมื่อการแลกเปลี่ยนถูกย้ายออกไป คุณต้อง

(1) ปรับขนาดรูทพาร์ติชันของคุณ ซึ่งตอนนี้มีพื้นที่ว่างอยู่ข้างๆ คุณสามารถใช้คำสั่ง เติบโต (จากแพ็คเกจ ยูทิลิตี้คลาวด์) ซึ่งทำให้พาร์ติชันใช้พื้นที่ที่มีอยู่ทั้งหมด หากคุณไม่สามารถรับแพ็กเกจนี้บนระบบของคุณ คุณสามารถทำได้ด้วยตนเองโดยใช้คำสั่งย่อย ปรับขนาดส่วน ของ แยกทาง, บอกเฉพาะหมายเลขพาร์ติชัน (1?) และตำแหน่ง END (เป็นบล็อก) อ้างถึง แยกส่วน /dev/vda เพื่อรับตำแหน่ง END ที่คาดหวัง แยกทาง จะป้องกันไม่ให้คุณเขียนทับการแลกเปลี่ยนโดยไม่ได้ตั้งใจ

(2) ปรับขนาดระบบไฟล์ (ext4 สามารถขยายได้ทางออนไลน์ ไม่จำเป็นต้องยกเลิกการต่อเชื่อม) โดยใช้ resize2fs /dev/vda1

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

Score:0
ธง za

คุณต้องลบพาร์ติชันสว็อป ขยายพาร์ติชันข้อมูล และสร้างสว็อปใหม่หากต้องการ

หากคุณมีหน่วยความจำว่างเพียงพอ (การสลับใช้ไม่มากนัก) คุณสามารถทำเช่นนี้ได้โดยไม่ทำให้บริการหยุดชะงัก เริ่มด้วย: สลับ /dev/vda2เพื่อปล่อยการแลกเปลี่ยน หากคุณไม่สามารถทำเช่นนั้นได้ (หน่วยความจำไม่เพียงพอ) คุณจะต้องหยุดบริการที่ใช้หน่วยความจำจนกว่าคุณจะสามารถปิดใช้งานการสลับได้

หลังจากสลับสำเร็จให้เรียกใช้ fdisk /dev/vda และลบพาร์ติชันที่สองออก

ตอนนี้ตัดสินใจว่าคุณต้องการค่าสวอปเท่าใดและคำนวณว่าควรเริ่มต้นที่จุดใด ตัวอย่างเช่น หากคุณต้องการมี 8 GiB (16777216 ภาค) swap เหมือนที่คุณมีตอนนี้ และคุณมีดิสก์ 150 GiB (314572800 ภาค) พอดี การสลับของคุณควรเริ่มต้นที่ภาค 314572800-16777216 = 297795584 ดังนั้นสร้างพาร์ติชัน vda2 ใหม่ ของประเภท 82 (Linux swap) ซึ่งเริ่มต้นในภาคนี้และ 314572799 (ควรแนะนำค่านี้ด้วยตัวเอง) อย่าใช้ตัวเลขของฉันสุ่มสี่สุ่มห้า คำนวณด้วยตัวคุณเอง เพราะฉันตั้งสมมติฐานเกี่ยวกับขนาดดิสก์ â คุณค่อนข้างจะซ่อนข้อมูลบางส่วนที่อาจทำให้การคำนวณนี้ถูกต้อง (และในอนาคตอย่าโพสต์ภาพหน้าจอของคอนโซล แต่ให้คัดลอกและวางเป็นข้อความจะดีกว่ามาก และอย่าละเว้นข้อมูลเช่นการแบ่งพาร์ติชันของดิสก์ คัดลอกผลลัพธ์ที่สมบูรณ์ดีกว่า มันไม่สามารถใช้ ระบุตัวคุณหรือทำอันตรายใด ๆ แต่ทำให้ชีวิตง่ายขึ้น)

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

สังเกตของคุณ vda1 เริ่มต้นที่ภาค 2048 สิ่งนี้สำคัญมาก!

  1. ลบพาร์ติชันแรก ใช่ทำมัน ใช่ในระบบที่กำลังทำงานอยู่ จะไม่มีอะไรเกิดขึ้นและไม่มีอะไรจะเสีย
  2. สร้างพาร์ติชัน 1 ใหม่ โดยควรเริ่มต้นที่เซกเตอร์ที่แน่นอน 2048 และสิ้นสุดที่หรือผ่านเซกเตอร์สุดท้ายปัจจุบัน 188745727 ตรวจสอบให้แน่ใจว่าพาร์ติชันใหม่ของคุณเริ่มต้นที่ 2048 และไม่เล็กกว่าที่เคยเป็น! โปรดสังเกตด้วยว่าอาจตรวจพบลายเซ็นระบบไฟล์และแนะนำให้ล้างข้อมูล อย่าเช็ด.
  3. ยอมรับการเปลี่ยนแปลงไปยังดิสก์ () fdisk ควรออกและบอกว่ามีการเขียนตารางพาร์ติชัน แต่เคอร์เนลยังคงใช้ตารางพาร์ติชันเก่า ใช้ kpartx หรือ โพรบ เพื่อโหลดซ้ำตามที่แนะนำ หรือปิดการแลกเปลี่ยนใน /etc/fstab และรีบูต (คุณต้องปิดการใช้งานเพื่อไม่ให้หยุดการบู๊ตเนื่องจากไม่มีลายเซ็นสลับ)
  4. ณ จุดนี้ของคุณ lsblk ควรแสดงขนาดพาร์ติชันใหม่แล้ว คุณสามารถขยายระบบไฟล์ด้วย resize2fs /dev/vda1. สำหรับ swap ให้สร้างโครงสร้าง swap ใหม่ด้วย mkswap /dev/vda2 และถ้า /etc/fstab อ้างถึงการแลกเปลี่ยนโดยใช้ UUID อัปเดตด้วยค่าใหม่ที่ mkswap พิมพ์ให้คุณ
pl flag
เหตุใดจึงต้องลบพาร์ติชัน 1 ออก นี่ไม่ใช่พาร์ติชั่นรูท !!
Nikita Kipriyanov avatar
za flag
ลบแล้วสร้างพาร์ติชันที่เริ่มต้นในเซกเตอร์เดียวกัน เหมือนกับการ "ปรับขนาด" พาร์ติชัน โดยพื้นฐานแล้วมันแค่เปลี่ยนตัวเลขบางส่วนในบันทึกตารางพาร์ติชั่น หากคุณคิดว่า `growpart' กำลังทำอย่างอื่นอยู่ แสดงว่าคุณไม่เข้าใจสิ่งที่เกิดขึ้น
pl flag
ไม่ฉันทำไม่ได้ แต่ฉันคิดว่าการขยาย (`growpart`) หรือการปรับขนาด (`parted resizepart`) นั้นมีแนวโน้มที่จะเกิดข้อผิดพลาดของผู้ใช้น้อยกว่าและง่ายกว่า
Nikita Kipriyanov avatar
za flag
แต่เหตุใดฉันจึงต้องติดตั้งซอฟต์แวร์เพิ่มเติมที่ฉันแทบไม่เคยใช้เลย ในเมื่อมีซอฟต์แวร์ที่สามารถทำงานได้อยู่แล้ว ใช่ เครื่องมือบางอย่างอาจดูเหมือนเกิดข้อผิดพลาดน้อยกว่า แต่ก็ให้การควบคุมน้อยลงเช่นกัน นอกจากนี้ เหตุใดคุณยังคงอ้างถึงการดำเนินการเดียวกันโดยใช้คำศัพท์ที่แตกต่างกัน ราวกับว่าเครื่องมือเหล่านั้นทำสิ่งอื่นที่ไม่ใช่เพียงแค่อัปเดตหมายเลขเดียวกันในตารางพาร์ติชันด้วยวิธีเดียวกัน
pl flag
ทุกสิ่งมีค่าใช้จ่าย ดังนั้นเราอาจยอมรับที่จะติดตั้งซอฟต์แวร์เพิ่มเติมเพื่อหลีกเลี่ยงงานประจำหรืองานที่ต้องใช้สมาธิ โปรดทราบว่า `parted' มีคำสั่งย่อย 'resizepart' เพื่อตอบสนองกรณีการใช้งานทั่วไปนี้ 'growpart' เป็นทางเลือกแบบสแตนด์อโลน ทางเลือกหนึ่งจะย้อนกลับไปที่ 'fdisk' สำหรับสถานการณ์การจัดการพาร์ติชันที่ผิดปกติ

โพสต์คำตอบ

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