Raspberry Pi ออกจากพื้นที่ดิสก์


9

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

ฉันเห็นการสนทนาอีกครั้งเกี่ยวกับพาร์ติชันที่ฉันสามารถเรียกใช้คำสั่งเพื่อดูของฉัน นี่คือสิ่งที่มันแสดงให้เห็น

pi@raspberrypi ~ $ sudo fdisk -l

Disk /dev/mmcblk0: 7969 MB, 7969177600 bytes
4 heads, 16 sectors/track, 243200 cylinders, total 15564800 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: 0x000c27cb

    Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192     1685546      838677+   e  W95 FAT16 (LBA)
/dev/mmcblk0p2         1687552    15499263     6905856   85  Linux extended
/dev/mmcblk0p3        15499264    15564799       32768   83  Linux
/dev/mmcblk0p5         1695744     1818623       61440    c  W95 FAT32 (LBA)
/dev/mmcblk0p6         1826816    15499263     6836224   83  Linux

ฉันได้พาร์ติชั่น 5 พาร์ทหรือไม่ ฉันจะเพิ่มพื้นที่ว่างได้อย่างไร

แก้ไข: เอาท์พุทของ df -h

pi@raspberrypi ~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       6.3G  6.0G   25M 100% /
devtmpfs        428M     0  428M   0% /dev
tmpfs            87M  336K   86M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           173M     0  173M   0% /run/shm
/dev/mmcblk0p5   60M   20M   41M  33% /boot
/dev/mmcblk0p3   27M  397K   25M   2% /media/SETTINGS

การ์ด SD ใหญ่แค่ไหน เอาต์พุตของ df -h คืออะไร คุณเรียกใช้ sudo raspi-config และขยายระบบไฟล์รูท (ตัวเลือกที่ 1 - ฉันเชื่อ) หรือไม่?
Steve Robillard

การ์ด 8gig ฉันขยายออก
รถยก

นี่คือ "เพียง" raspbian หรือ noobs? ฉันไม่รู้ว่าพาร์ติชั่น FAT ตัวที่สองนี้จะเป็นอะไร
Ghanima

มันคือ NOOBS ใช่ ฉันจำเป็นต้องเริ่มใหม่หรือไม่? ฉันควรติดตั้งใหม่โดยไม่ใช้ NOOBS หรือไม่
รถยก

1
ตรวจสอบdu / |sort -nก่อนสิ่งที่กินพื้นที่เช่นบันทึก (ถ้า logrotate ทำงานไม่ถูกต้อง) หรือแคชของผู้จัดการแพคเกจ สตีฟ commandline ด้วย-shดีกว่าที่จะทำเช่นนั้น
Ghanima

คำตอบ:


10

นี่คือสิ่งที่ใช้ได้สำหรับฉัน คุณสามารถลองชุดคำสั่งนี้เพื่อกำจัดไฟล์แพ็คเกจที่ไม่จำเป็น:

sudo apt-get autoremove
sudo apt-get clean

มันไม่ได้เป็นปาฏิหาริย์ แต่บางครั้งทำให้ฉันได้รับอิสระมากถึงสองร้อยล้าน MB

หากคุณต้องการเรียกใช้เพียง raspbian ฉันมีโชคดีกับJessie Liteและเพิ่มแพ็คเกจตามที่ฉันต้องการ นี่คือตัวอย่างในการ์ด 8GB uSD:

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.8G  1.1G  6.4G  15% /
devtmpfs        224M     0  224M   0% /dev
tmpfs           229M     0  229M   0% /dev/shm
tmpfs           229M  4.6M  224M   2% /run
tmpfs           5.3M  4.1k  5.3M   1% /run/lock
tmpfs           229M     0  229M   0% /sys/fs/cgroup
/dev/mmcblk0p1   63M   21M   43M  34% /boot

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

ฉันจะดูเป็น Jessie Lite ด้วย แต่นั่นอาจทำให้ฉันกลับมาอีกครั้ง ฉันหวังว่าจะมีวิธีการเพียงดาวน์โหลดสแนปชอตของระบบปฏิบัติการพร้อมสิ่งที่ฉันต้องการ :)
Forklift

AFAIK "apt-get autoremove" จะลบไฟล์แพ็คเกจที่ล้าสมัยเท่านั้นในขณะที่ "apt-get clean" จะลบไฟล์เหล่านั้นทั้งหมด หากคุณวางแผนที่จะติดตั้งแพคเกจบางอย่างการดำเนินการเดิมอาจแนะนำให้เลือกเพื่อประหยัดเวลาและแบนด์วิดธ์
derjoachim

7

หากคุณติดตั้ง Jessie ในหน่วยความจำขนาด 8GB ให้ดูที่แอพพลิเคชั่นที่ไม่ได้ใช้ ฉันลบ Mathematica และได้รับมากกว่า 600 MB ด้วย

sudo apt-get purge wolfram-engine

และแพคเกจอื่น ๆ ที่ใช้พื้นที่: lifehacker.com/...
nsof

3

วิธีแก้ปัญหาอื่นก็คือการใช้ก้าน USB ขนาดใหญ่ (32G) หรือการ์ด SD (พร้อมตัวอ่านการ์ด SD USB) และถ่ายโอนระบบไฟล์รูทของคุณไปยังอุปกรณ์ใหม่ ดูการขยายขนาดของราก / ใช้ฮาร์ดดิสก์ภายนอก

หากคุณต้องการเริ่มต้นใหม่โดยไม่สูญเสียสิ่งที่คุณมีในการ์ด SD ขนาดใหญ่นี่คือวิธีการติดตั้ง Raspbian OS ที่สามารถบู๊ตได้บนการ์ด SD ใหม่ หลังการติดตั้งให้เปลี่ยนการ์ด SD ใหม่กับ SD card สำหรับบูตแล้วคุณจะมีระบบที่สะอาดพร้อมการเข้าถึงข้อมูลเก่าทั้งหมดของคุณ

Install Raspbian on the Raspberry Pi from Linux
  1. การตั้งค่า - ข้อกำหนดคือระบบ Linux (ชนิด) สามารถเชื่อมต่ออินเทอร์เน็ตเขียนไปยัง micro SD Card (8G หรือใหญ่กว่า) โปรแกรมฟอร์แมตดิสก์ ( fdisk) wgetจะดีกับfunzip( unzipต้องใช้ที่จัดเก็บในตัวเครื่อง) และ Raspberry Pi เมื่อเชื่อมต่อการ์ด SD กับระบบ Linux ในเครื่องอ่านการ์ดหรือในเครื่องอ่านการ์ด USB ให้กำหนดที่อยู่อุปกรณ์ด้วยlsblkคำสั่งหรือคำสั่งอื่น ๆ ในกรณีของฉันฉันจะใช้ / dev / sdb ตรวจสอบว่าอุปกรณ์ถูกเมาท์ด้วยdfคำสั่งหรือไม่และให้ถอดอุปกรณ์ออกจากumount /dev/sdb?คำสั่ง

    pi@RPi3:~ $ lsblk
    NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sdb           8:16   1  29.8G  0 disk
    └─sdb1        8:17   1  29.8G  0 part
    sda           8:0    0 931.5G  0 disk
    ├─sda2        8:2    0 931.4G  0 part /
    └─sda1        8:1    0   120M  0 part /media/pi/boot1
    mmcblk0     179:0    0  29.7G  0 disk
    ├─mmcblk0p2 179:2    0  29.7G  0 part
    └─mmcblk0p1 179:1    0    63M  0 part /boot
    
  2. FORMAT - ฟอร์แมตการ์ด SD ไปยังพาร์ติชันหนึ่งให้พิมพ์ fat32 [ sudo fdisk /dev/sdb, subcmd p, (หากไม่ใช่ประเภท Disklabel: dos, subcmd o), subcmd d เพื่อลบพาร์ติชันเก่า subcmd n เพื่อสร้างพาร์ติชันใหม่ (ใช้ค่าเริ่มต้นหลัก p, หมายเลข 1, ครั้งแรก, สุดท้าย), subcmd t สำหรับประเภท (หมายเลข 1, รหัส c) และ subcmd w เพื่อเขียน]

    pi@RPi3:~ $ sudo fdisk -l /dev/sdb
    
    Device     Boot Start      End  Sectors  Size Id Type
    /dev/sdb1        8192 62552063 62543872 29.8G  c W95 FAT32 (LBA)
    
  3. ดาวน์โหลด, UNZIP และ WRITE - สามารถดาวน์โหลดภาพ Raspbian, unzip และติดตั้งลงในการ์ด SD ได้ในครั้งเดียว unzipคำสั่งจะทำงานถ้าภาพ Raspbian ถูกดาวน์โหลดครั้งแรกและซิปแล้ว ( unzipจะไม่ทำงานกับอินพุตประปา, funzipจะ) ภาพดังกล่าวมีมากกว่า 1.5G แล้วทำการคลายซิปลง 4G จะต้องใช้เวลาในการดาวน์โหลด

    pi@RPi3:~ $ wget -qO - https://downloads.raspberrypi.org/raspbian_latest | funzip | sudo dd bs=4M of=/dev/sdb
    
  4. VERIFY - อิมเมจได้รับการติดตั้งพร้อมกับสองพาร์ติชั่น (boot และ root) พาร์ติชัน Linux มีขนาดเล็กมากและควรขยาย (เป็นไปได้ที่จะเพิ่มพาร์ติชั่นเพิ่มเติมถ้าจำเป็นก่อนที่จะทำการขยาย) ก่อนที่จะทำการขยายพาร์ติชั่นลีนุกซ์, NOTE / dev / sdb2 Start Sector (เช่น 137216 ในกรณีของฉัน)

    pi@RPi3:~ $ echo -e "p\nq" | sudo fdisk /dev/sdb | egrep "Dev|^/"
    Device     Boot  Start     End Sectors Size Id Type
    /dev/sdb1         8192  137215  129024  63M  c W95 FAT32 (LBA)
    /dev/sdb2       137216 8581119 8443904   4G 83 Linux
    
  5. ขยายfdiskพาร์ติชัน- คำสั่งสามารถใช้เพื่อขยายพาร์ติชัน Linux ขั้นแรกให้ลบพาร์ติชัน Linux subcmd d, ค่าเริ่มต้น 2, เพิ่มกลับไปที่ subcmd n, ค่าเริ่มต้น p, ค่าเริ่มต้น 2,
    ใช้เซกเตอร์เริ่มต้น (ดังที่ระบุไว้ในขั้นตอนที่ 3), ใช้ค่าเริ่มต้นสำหรับภาคส่วนสุดท้ายและเขียนการเปลี่ยนแปลง subcmd มีความสุข (หรือเลิกโดยไม่เขียนการเปลี่ยนแปลงด้วย subcmd q) หากส่วนเริ่มต้นเหมือนกันก่อนหน้านี้ข้อมูลจะอยู่ในรูปแบบ

    pi@RPi3:~ $ echo -e "d\n2\nn\np\n2\n137216\n\nw" | sudo fdisk /dev/sdb
    
  6. เขียนฉลากตรวจสอบระบบไฟล์และขยายระบบไฟล์ -

    pi@RPi3:~ $ sudo e2label /dev/sdb2 root
    pi@RPi3:~ $ sudo e2fsck -f /dev/sdb2
    pi@RPi3:~ $ sudo resize2fs /dev/sdb2
    
  7. ตัวเลือก - เป็นไปได้ที่จะเมาต์พาร์ติชันของการ์ด SD และทำการกำหนดค่าไฟล์ซึ่งอยู่นอกเหนือขอบเขตนี้ ตรวจสอบให้แน่ใจว่าข้อมูลนั้นถูกsyncถอดออกและถอดออกหากทำการเชื่อมต่อก่อนที่จะนำการ์ด SD ออกจากระบบที่ใช้งานอยู่

  8. BOOT and CONFIG - ติดตั้งการ์ด SD ใน Raspberry Pi และเสียบปลั๊กไฟ พี่ควรบูทขึ้น กำหนดค่า Pi มีการอ้างอิงถึงhttps://www.raspberrypi.org/documentation/configuration/


1

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

คุณต้องสามารถติดตั้งการ์ดรองบน ​​RPI ของคุณได้ด้วยตัวยึด 'ไดรฟ์ปากกา' ที่มีช่องเสียบ SD หรือที่คล้ายกัน

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

สร้างโคลนบนการ์ด SD ขนาดใหญ่ (16GB หรือมากกว่า)

การใช้ Win32DiskImager สร้างการสำรองข้อมูลรูปภาพโดยใช้ปุ่ม 'อ่าน' บนชื่อไฟล์ที่คุณต้องการจากนั้นใช้ 'เขียน' เพื่อคัดลอกภาพไปยังการ์ด SD ใหม่

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

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

Device         Boot   Start      End  Sectors   Size Id Type
/dev/mmcblk0p1         8192  1675781  1667590 814.3M  e W95 FAT16 (LBA)
/dev/mmcblk0p2      1679360 30703615 29024256  13.9G 85 Linux extended
/dev/mmcblk0p5      1687552  1810431   122880    60M  c W95 FAT32 (LBA)
/dev/mmcblk0p6      1818624 30703615 28884992  13.8G 83 Linux

ลบ / dev / mmcblk0p2 ด้วย 'd' แล้วป้อน '2' สร้างพาร์ติชันอีกครั้ง 'ความลับ' คือการใช้เซกเตอร์ 'เริ่มต้น' ที่เหมือนกัน

สร้างลินุกซ์พาร์ติชันเสริมด้วย 'n', เลือกส่วนขยาย, ป้อนเซกเตอร์แรก (ในตัวอย่างของฉัน 1679360) และให้fdiskเลือกภาคสุดท้าย ('ค่าเริ่มต้น'), จากนั้นป้อน 't' เพื่อป้อนพาร์ติชัน 'ชนิด' ของ 'พาร์ทิชัน '2 ควรเป็นประเภท' 85 '(Linux ขยาย)

ตอนนี้สร้างโลจิคัลพาร์ติชันที่อยู่ภายในพาร์ติชันเสริมที่เพิ่งสร้างขึ้น

ใช้ 'n' สำหรับใหม่ป้อน 'l' สำหรับ 'ตรรกะ' และ 'fdisk' จะกำหนดช่องถัดไปที่มีอยู่ภาคแรกจะต้องเหมือนกันก่อนหน้านี้ในตัวอย่างของฉัน 1687552 ภาคสุดท้ายใช้ต้นฉบับ หมายเลขในตัวอย่าง 122880 ของฉันป้อนพาร์ติชัน 't' พิมพ์เป็น 'c' (ms-dos)

ทำขั้นตอนนี้ซ้ำสำหรับพาร์ติชั่นอื่นของคุณ แต่ในส่วนสุดท้าย (p6) ให้ 'fdisk' เลือก 'เซ็กเตอร์สุดท้าย' ของคุณ

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

ตอนนี้ยอมรับการเปลี่ยนแปลงของคุณด้วย 'w' เพื่อเขียนตารางพาร์ติชันใหม่

รีบูตและแจ้งให้ Linux ทราบขนาดดิสก์ใหม่ของคุณด้วย:

resize2fs /dev/mmcblk0p6

สนุก,


ทำไมไม่ใช่แค่ddการ์ด SD ทั้งหมดจากนั้นปรับขนาดพาร์ติชัน การทำซ้ำโครงสร้างของ Pi SD ที่ดีนั้นไม่ใช่เรื่องไร้สาระโดยเฉพาะอย่างยิ่งทำให้มั่นใจว่าขอบเขตที่เหมาะสมสำหรับพาร์ติชันซึ่งไม่ได้อยู่ในfdiskค่าเริ่มต้นปกติ
Milliways

ปัญหาคือการปรับเปลี่ยนพาร์ติชันเสริมโดยไม่ทราบสาเหตุเมื่อฉันเปลี่ยนแบรนด์ SD ฉันไม่สามารถสร้างพาร์ติชันที่ถูกปรับเปลี่ยนใหม่ในเซกเตอร์เริ่มต้นที่แน่นอน การสร้างพาร์ติชันใหม่อาจไม่ใช่อยู่ในขอบเขต แต่เป็นสถานะที่มั่นคงและไม่ใช่ทางกายภาพไม่ใช่ปัญหา วิธีที่ง่ายควรใช้Win32DiskImager(หรือคล้ายกัน): โคลนการ์ด SD โดยใช้การfdisk ลบและสร้างใหม่ในกรณีนี้ mmcblk0p6 และจากนั้นresize2fs
fcm

หากต้องการเปลี่ยนพาร์ติชันก่อนอื่นคุณต้องแก้ไขพาร์ติชันเสริมจากนั้นคุณสามารถขยายพาร์ติชันที่ใช้งานได้ เหตุผลสำหรับขอบเขตคือเมื่อ SD ต้องการกู้คืนพื้นที่มันทำเช่นนั้นใน Erase Block Boundary - โดยปกติคือ 4M หากขอบเขตของพาร์ทิชันไม่ตรงแนวคุณสามารถลบได้ 2 บล็อก สำหรับการ์ด SD คุณควรระบุขนาดของดิสก์ในบล็อกไม่ใช่เซ็กเตอร์
Milliways

มันจะทำให้รู้สึกมากขึ้นประหยัดเวลาและจะน้อยแนวโน้มที่จะเกิดข้อผิดพลาดถ้ามากกว่าที่จะใช้ddในการคัดลอกพาร์ทิชันที่คุณเพิ่งจัดรูปแบบพวกเขาด้วยและจากนั้นคัดลอกในเนื้อหาด้วยmkfs.ext4 rsyncหมายเหตุไม่ชัดเจนด้านบนว่าคุณจะต้องสร้างพาร์ติชันที่ใหญ่กว่าก่อนถ้าคุณต้องการใช้resizefsกับระบบไฟล์ภายในพาร์ติชั่น
goldilocks

1

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

เปิดเทอร์มินัลแล้วเรียกใช้ sudo raspi-config -> Expand Filesystem

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

สำรองดิสก์:

  • ค้นหาชื่อดิสก์: ใส่การ์ด SD ลงในคอมพิวเตอร์ของคุณและเรียกใช้diskutil list(อาจdisk2... ไม่ใช้disk1!!!)
  • ภาพสำรอง: sudo dd bs=1m if=/dev/disk2 of=/path/to/your/backup.img. หมายเหตุนี่จะใช้เวลานาน หากต้องการดูความคืบหน้ากดCTRL-T
  • ใส่ดิสก์ใหม่และ diskutil list
  • เขียนลงดิสก์ใหม่: sudo dd bs=1m if=/path/to/your/backup.img of=/dev/disk2
  • ขยายระบบไฟล์: แทรกลงใน Pi และบูต sudo raspi-config -> Expand Filesystem

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