ฉันจะปรับขนาดพาร์ติชั่น / (root) ของฉันได้อย่างไร?


171

แม้ว่า SD card ของฉันจะเป็น 16GB แต่ภาพที่ฉันติดเข้ามานั้นมีเพียง 2GB และตอนนี้ฉันสามารถเห็นพื้นที่จัดเก็บ 2GB บนดิสก์เท่านั้น

ฉันจะปรับขนาดรูปภาพเพื่อให้มีพื้นที่บนพาร์ติชันรูทมากขึ้นได้อย่างไร


ขอบคุณ .. ทำงานได้ดีสำหรับฉันและไม่ได้ติดตั้งระบบของฉัน .. ยังมี IRC และ apache webserver และความจุ 8gb เต็มของฉัน

1
ทำไมต้องปรับขนาดพาร์ติชั่นรูทเมื่อคุณสามารถสร้างพาร์ติชั่นใหม่ในพื้นที่ว่างบนการ์ด SD ที่เหลืออยู่จากนั้นจึงทำการติดตั้งภายในพาร์ติชั่นรูท/mnt/storageเช่น สิ่งนี้แยกระบบและข้อมูลได้อย่างมีประสิทธิภาพและทำให้ง่ายต่อการบำรุงรักษาและสำรองข้อมูล
mbaitoff

2
@mbaitoff - เนื่องจากอิมเมจระบบเริ่มต้นมีพื้นที่ว่าง 68MiB เท่านั้นซึ่งไม่ได้มีพื้นที่เหลือเพียงพอสำหรับการเพิ่มซอฟต์แวร์เพิ่มเติม
Jules

@Jules - ฉันไม่ได้ถามว่าทำไมคนต้องการปรับขนาดพาร์ติชัน A ถามว่าเพราะเหตุใดเราจึงปรับขนาดพาร์ติชันระบบแทนการติดตั้งที่เก็บข้อมูลเพิ่มเติมที่จุดเมานต์พาร์ติชันระบบดังนั้นการแยกระบบและซอฟต์แวร์ / ข้อมูลอย่างมีประสิทธิภาพ? หากคุณต้องการจัดเก็บข้อมูลการติด SD spcae เหลืออยู่ที่/mnt/storageถ้าคุณต้องการโปรแกรม - /opt/software/ติดที่
mbaitoff

@mbaitoff โปรแกรมส่วนใหญ่ติดตั้งใน / usr ไม่ใช่ / opt / software อิมเมจที่สร้างไว้ล่วงหน้ามีเนื้อหาของ / usr ในรูทพาร์ติชัน ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องเพิ่มขนาดของพาร์ติชันรูทหากคุณต้องการติดตั้งซอฟต์แวร์ที่ไม่ใช่ค่าเริ่มต้น
Jules

คำตอบ:


158

สมมติว่าคุณกำลังใช้ Debian

เวอร์ชั่นย่อ:

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

คำแนะนำทีละขั้นตอน

ก่อนอื่นทำการสำรองข้อมูลการ์ด SD ของคุณโดยใช้คำแนะนำที่นี่ในกรณีที่มีสิ่งผิดปกติ

จากบรรทัดคำสั่งหรือหน้าต่างเทอร์มินัลป้อนต่อไปนี้

sudo fdisk /dev/mmcblk0

จากนั้นพิมพ์pเพื่อแสดงรายการตารางพาร์ติชัน

คุณควรเห็นสามพาร์ติชั่น หากคุณดูในคอลัมน์สุดท้ายที่ชื่อว่าระบบคุณควรมี

  1. W95 FAT32
  2. ลินุกซ์
  3. ลินุกซ์สลับ

จดบันทึกหมายเลขเริ่มต้นสำหรับ partiton 2 คุณจะต้องใช้ภายหลัง แม้ว่ามันจะยังคงอยู่บนหน้าจอ (ในกรณี)

ประเภทถัดไปdเพื่อลบพาร์ติชัน

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

ดังนั้นพิมพ์ 2

จากนั้นพิมพ์dอีกครั้งแล้วพิมพ์3เพื่อลบพาร์ติชันสลับ

ตอนนี้คุณสามารถปรับขนาดพาร์ติชันหลัก

พิมพ์nเพื่อสร้างพาร์ติชันใหม่

pพาร์ทิชันใหม่นี้จะต้องมีพาร์ทิชันหลักดังนั้นประเภท

ถัดไปป้อน2เมื่อได้รับแจ้งสำหรับหมายเลขพาร์ติชัน

ตอนนี้คุณจะได้รับพร้อมต์สำหรับเซกเตอร์แรกสำหรับพาร์ติชันใหม่ ป้อนหมายเลขเริ่มต้นจากขั้นตอนก่อนหน้า (พาร์ติชัน Linux)

ถัดไปคุณจะได้รับพร้อมต์สำหรับเซกเตอร์ล่าสุดที่คุณสามารถกด Enter เพื่อยอมรับค่าเริ่มต้นซึ่งจะใช้พื้นที่ดิสก์ที่เหลือ

พิมพ์wเพื่อบันทึกการเปลี่ยนแปลงที่คุณทำ

รีบูตระบบอีกครั้งด้วยคำสั่งต่อไปนี้:

sudo reboot

เมื่อระบบรีบูตและคุณกลับมาที่ commandline ให้ป้อนคำสั่งต่อไปนี้:

sudo resize2fs /dev/mmcblk0p2

หมายเหตุ: อาจใช้เวลานาน (ขึ้นอยู่กับขนาดและความเร็วของการ์ด) ให้อดทนและปล่อยให้มันเสร็จสิ้นดังนั้นคุณจะไม่ทำให้ระบบไฟล์ยุ่งและต้องเริ่มจากศูนย์

เมื่อรีบูตระบบเสร็จแล้วให้ทำตามคำสั่งต่อไปนี้:

sudo reboot

ตอนนี้คุณสามารถตรวจสอบว่าระบบใช้เต็มความจุของการ์ด SD โดยป้อนคำสั่งต่อไปนี้:

df -h

ทำไมจึงใช้งานได้:

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

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

จากนั้นคุณปรับขนาด (ซึ่งปลอดภัยที่จะเรียกใช้บนดิสก์ที่เมาท์) ระบบไฟล์เพื่อใช้พื้นที่ทั้งหมดในพาร์ติชันรากใหม่

Ref:


1
@ การหมุนหากทำอย่างถูกต้องคุณจะไม่สูญเสียสิ่งของ แต่เป็นเหตุผลที่ฉันสำรองข้อมูลไว้ในขั้นตอนเดียว
Steve Robillard

2
จากความคิดเห็นดูเหมือนว่าคุณควรบันทึกว่าทำไมงานนี้ถึงไม่ได้เป็นอย่างไร
Jivings

1
@Jivings หวังว่าสิ่งนี้จะตอบข้อกังวลของคุณ
Steve Robillard

9
ดูเหมือนผิดมากที่คุณต้องลบพาร์ติชันเพื่อปรับขนาด
อเล็กซ์แชมเบอร์เลน

5
@AwesomeUser คุณไม่ได้ทำบน mac คุณทำมันบน pi เอง นอกจากนี้หากคุณใช้ raspbian คุณสามารถบูต pi และจากบรรทัดคำสั่งให้ใช้คำสั่งต่อไปนี้ sudo raspi-config และเลือกตัวเลือกการปรับขนาดพาร์ติชันรูท
Steve Robillard

102

การใช้อิมเมจ Debian-Wheezy Beta จะมียูทิลิตีการกำหนดค่าในตัวที่ช่วยให้ทำสิ่งนี้ได้ง่าย:

raspi-configมียูทิลิตี้ที่เรียกว่าเป็น สิ่งนี้จะทำงานในการบูตครั้งแรกหากคุณเชื่อมต่อโดยตรงกับ RPi หากคุณผ่าน SSH $ sudo raspi-configคุณสามารถเรียกใช้ด้วยตนเองโดยใช้ (ฉันคิดว่าคุณสามารถเรียกใช้เครื่องมือด้วยตนเองได้ตลอดเวลา)

ตัวเลือกที่สองในกล่องโต้ตอบสีน้ำเงินที่ตามexpand_rootfsมามีคำอธิบาย "ขยายพาร์ติชันรูทเพื่อเติมการ์ด SD"

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

อัปเดตในปี 2558!

ฉันกลับมาที่คำตอบนี้พร้อมกับข้อควรระวัง: ฉันใช้การ์ด SD ขนาด 16GB และฉันถูกพาร์ทิชันของฉันยื่นให้เต็มเพื่อเติมการ์ดที่ฉันใช้ การทำเช่นนี้ก่อให้เกิดปัญหามากมายเมื่อเปลี่ยนไปใช้การ์ดใหม่ซึ่ง (แม้ว่าจะระบุว่าเป็น 16GB) มีขนาดเล็กกว่าการ์ดรุ่นเก่าประมาณ 200MB

สิ่งนี้เกิดขึ้นเมื่อฉันเปลี่ยน RPis สองรุ่นจาก v1 เป็นรุ่น v2 ใหม่ซึ่งใช้การ์ด Micro SD

ตอนนี้ฉันปล่อยให้ฟรีประมาณ 1GB เพื่อให้แน่ใจว่าภาพของฉันสามารถสลับระหว่างการ์ด SD โดยไม่มีปัญหา


กระบวนการนี้ใช้เวลาประมาณ 10 นาทีด้วยการ์ด 16 GB ใน Pi ของฉัน
Der Hochstapler

5
นี่เป็นคำตอบที่ง่ายกว่ามาก นี่คือทางออกที่จะใช้
James Skimming

@JamesSkimming: นี่เป็นวิธีแก้ปัญหาสำหรับภาพ Debian-Wheezy Beta ไม่ได้สำหรับคนอื่น ๆ
เอสเอฟ

สิ่งนี้ใช้ไม่ได้กับ Raspbian เมื่อติดตั้งจาก NOOBS บนการ์ด SDCard ที่จัดส่งพร้อมชุด RPi เมื่อคุณพยายามที่จะเรียกใช้ตัวเลือกการขยายมันบอกว่ามันไม่ได้รับการสนับสนุนจากการตั้งค่านี้ แต่เนื่องจาก noobs ที่ใช้งานของคุณมันอาจจะใช้พื้นที่ทั้งหมดอยู่ดี ... ปัญหาคือฉันพยายาม reflash ภาพ 8GB ลงบนการ์ด 32GB
Eoin Campbell

Raspi-config ไม่ทราบวิธีการปรับขนาดรูตของ Raspbian Wheezy expand_rootfs ตามที่คุณแนะนำทำให้เกิดปัญหา คำตอบข้างต้นของคุณทำงานได้อย่างมีเสน่ห์ในระบบถ่ายทอดสดและไม่จำเป็นต้อง "ปล่อยไว้ประมาณ 1 GB"
GTodorov

28

หากคุณไม่สะดวกในการทำงานกับบรรทัดคำสั่งเช่นใน Steve Robillards คำตอบที่ยอดเยี่ยมมีบางแอปพลิเคชั่น GUI ที่พร้อมใช้งาน โดยเฉพาะอย่างยิ่ง gparted ทำงานได้ดีมาก

ฉันคิดว่ามันติดตั้งตามค่าเริ่มต้นบน Ubuntu LiveCD แต่ไม่ใช่ในระบบที่ติดตั้ง apt-get install gpartedมีหลักสูตรแก้ไขได้ง่ายสำหรับการนี้: คุณไม่สามารถทำสิ่งนี้กับ Pi จริงได้เนื่องจากการปรับขนาดพาร์ติชั่นที่พวกเขาต้องยกเลิกการต่อเชื่อม

ภาพด้านล่างเป็นภาษาดัตช์ แต่อย่าปล่อยให้สิ่งนั้นทำลายความสนุก มันใช้งานง่ายมาก นี่เป็นเลย์เอาต์ของภาพเดเบียนเริ่มต้นบน sdcard 8gb

GParted

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

ปรับขนาด

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

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


1
ฉันใช้วิธีนี้ ทำงานเหมือนจับใจ
อเล็กซ์แชมเบอร์เลน

ฉันเห็นด้วย. ฉันเคย gparted ทำสิ่งนี้และมันง่ายมาก
JayDev

หากคุณกำลังเชื่อมต่อผ่าน VNC ให้รันsudo -E gparted
forzagreen

อาจจำเป็นต้องเรียกใช้คำสั่งต่อไปนี้ก่อนgpartedถ้าคุณใช้งานภายใต้ Wayland (ไม่แน่ใจว่าปัญหาเหล่านี้ได้รับการแก้ไขแล้ว):xhost +SI:localuser:root
John Manko

11

หากคุณใช้ภาพ Debian Wheezy ที่ใหม่กว่า: http://www.raspberrypi.org/archives/1435 สคริปต์เวลาบูตช่วยให้คุณปรับขนาดเพื่อเติม sdcard โดยอัตโนมัติ


1
ฉันใช้ Arch Linux
Jivings

2
จะทำสิ่งนั้นได้อย่างไร

2
นี่เป็นวิธีที่ง่ายที่สุดในการปรับขนาดพาร์ติชันสำหรับภาพ wheezy ที่ทันสมัย
Yuval Adam

-3

ฉันติดตามวิดีโอนี้และทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน (ฉันมีการ์ด 16GB):

http://www.youtube.com/watch?v=R4VovMDnsIE&feature=plcp


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