Bagaimana cara mengubah ukuran partisi / (root) saya?


170

Meskipun kartu SD saya 16GB, gambar yang saya tampilkan hanya 2GB dan sekarang saya hanya dapat melihat ruang penyimpanan 2GB pada disk.

Bagaimana saya bisa mengubah ukuran gambar sehingga saya memiliki lebih banyak ruang di partisi root saya?


Terima kasih..bekerja sangat bagus untuk saya dan tidak menggunakan sistem saya..memiliki IRC dan apache webserver dan kapasitas 8GB penuh saya

1
Mengapa mengubah ukuran partisi root ketika Anda dapat membuat partisi baru di ruang SD-card gratis yang tersisa dan kemudian memasangnya di dalam partisi root di /mnt/storagemisalnya. Ini secara efektif mengisolasi sistem dan data dan membuatnya lebih mudah untuk pemeliharaan dan pencadangan.
mbaitoff

2
@ MBaitoff - karena gambar sistem default hanya memiliki ruang kosong 68MiB, yang tidak meninggalkan banyak ruang untuk menambahkan perangkat lunak tambahan.
Jules

@ Jules - Saya tidak bertanya mengapa orang ingin mengubah ukuran partisi. A bertanya mengapa seseorang akan mengubah ukuran partisi sistem alih-alih memasang penyimpanan tambahan pada titik pemasangan partisi sistem sehingga secara efektif mengisolasi sistem dan perangkat lunak / data? Jika Anda ingin penyimpanan, pasang sisa SD di /mnt/storage, jika Anda ingin program - pasang di /opt/software/.
mbaitoff

@ MBaitoff sebagian besar program menginstal di / usr, bukan / opt / perangkat lunak. Gambar prebuilt memiliki isi / usr di partisi root. Karena itu tampaknya penting untuk meningkatkan ukuran partisi root jika Anda ingin menginstal perangkat lunak non-standar.
Jules

Jawaban:


157

Dengan asumsi Anda menggunakan Debian.

Versi Singkat:

  1. Cadangkan sistem Anda
  2. Hapus partisi utama dan swap (biarkan partisi boot sendirian)
  3. Buat kembali partisi utama untuk memanfaatkan ruang disk yang tersisa (tidak termasuk partisi boot). Pastikan untuk menggunakan kembali sektor awal yang sama dengan partisi root asli.
  4. reboot sistem
  5. mengubah ukuran partisi root boot baru untuk memanfaatkan ukuran partisi penuh.

Petunjuk langkah demi langkah

Pertama-tama buat cadangan Kartu SD Anda menggunakan instruksi yang ditemukan di sini jika terjadi kesalahan.

Dari baris perintah atau jendela terminal, masukkan yang berikut ini

sudo fdisk /dev/mmcblk0

lalu ketik puntuk mendaftar tabel partisi

Anda akan melihat tiga partisi. jika Anda melihat di kolom terakhir berlabel Sistem yang seharusnya Anda miliki

  1. W95 FAT32
  2. Linux
  3. Linux Swap

catat nomor awal untuk partiton 2, Anda akan membutuhkan ini nanti. meskipun kemungkinan akan tetap di layar (untuk berjaga-jaga).

tipe berikutnya duntuk menghapus partisi.

Anda kemudian akan diminta untuk nomor partisi yang ingin Anda hapus. Dalam kasus di atas Anda ingin menghapus partisi swap Linux dan Linux.

Jadi ketik 2

lalu ketik dlagi dan kemudian ketik 3untuk menghapus partisi swap.

Sekarang Anda dapat mengubah ukuran partisi utama.

ketik nuntuk membuat partisi baru.

Partisi baru ini harus berupa partisi primer jadi ketik p.

Selanjutnya masukkan 2ketika diminta untuk nomor partisi.

Anda sekarang akan diminta untuk sektor pertama untuk partisi baru. Masukkan nomor mulai dari langkah sebelumnya (partisi Linux)

Selanjutnya Anda akan diminta untuk sektor terakhir yang Anda bisa tekan enter untuk menerima default yang akan memanfaatkan ruang disk yang tersisa.

Ketik wuntuk menyimpan perubahan yang telah Anda buat.

Selanjutnya reboot sistem dengan perintah berikut:

sudo reboot

setelah sistem reboot dan Anda kembali pada commandline, masukkan perintah berikut:

sudo resize2fs /dev/mmcblk0p2

Catatan: ini bisa memakan waktu lama (tergantung pada ukuran dan kecepatan kartu) bersabar dan biarkan selesai sehingga Anda tidak mengacaukan sistem file dan harus mulai dari awal.

Setelah selesai reboot sistem dengan perintah berikut:

sudo reboot

Anda sekarang dapat memverifikasi bahwa sistem menggunakan kapasitas penuh Kartu SD dengan memasukkan perintah berikut:

df -h

Mengapa Ini Bekerja:

Keajaiban sebenarnya di sini adalah Anda menghapus partisi root dan swap, kemudian hanya menciptakan partisi root (menggunakan sektor awal asli) sebelum menulis data ke disk . Akibatnya, Anda tidak menghapus data yang ada dari partisi root.

Dengan menghapus partisi swap Anda memungkinkan ruang partisi root untuk tumbuh melampaui ukuran saat ini dan mengisi bagian yang tidak digunakan dari disk (karena penempatan partisi-partisi root di-sandwich antara partisi boot dan swap - tidak dapat cukup diubah ukurannya meninggalkan partisi swap sendiri).

Anda kemudian mengubah ukuran (yang aman untuk dijalankan pada disk yang dipasang) sistem file untuk menggunakan semua ruang di partisi root baru.

ref:


1
@ Jivings jika dilakukan dengan benar Anda tidak kehilangan apa-apa, tapi itu adalah alasan saya membuat cadangan langkah pertama.
Steve Robillard

2
Dari komentar sepertinya Anda juga harus mendokumentasikan mengapa ini berhasil, bukan hanya caranya.
Jivings

1
@Jivings semoga ini menjawab kekhawatiran Anda.
Steve Robillard

9
Tampaknya sangat salah bahwa Anda harus menghapus partisi untuk mengubah ukurannya.
Alex Chamberlain

5
@AwesomeUser Anda tidak melakukannya di mac, Anda melakukannya di pi itu sendiri. Juga, jika Anda menjalankan raspbian, Anda dapat mem-boot pi dan dari baris perintah mengeluarkan perintah sudo raspi-config berikut, dan memilih opsi partisi root.
Steve Robillard

102

Menggunakan gambar Beta Debian-Wheezy, ada utilitas konfigurasi bawaan yang membuatnya mudah:

Ada utilitas yang disebut raspi-config. Ini berjalan saat boot pertama jika Anda terhubung langsung ke RPi. Jika Anda melebihi SSH, Anda dapat menjalankannya secara manual $ sudo raspi-config. (Saya pikir Anda dapat menjalankan kembali alat secara manual kapan saja).

Pilihan kedua pada dialog biru yang berikut berjudul expand_rootfs, dengan deskripsi "Perluas partisi root untuk mengisi kartu SD".

Memilih ini akan menyebabkan partisi root Anda diubah ukurannya untuk mengisi kartu pada saat Anda mem-boot ulang RPi Anda.

Pembaruan untuk 2015!

Saya kembali ke jawaban ini dengan catatan hati-hati: Saya telah menggunakan banyak kartu SD 16GB, dan saya tertangkap oleh maxxing partisi saya untuk mengisi kartu yang saya gunakan. Melakukan hal itu menyebabkan banyak masalah ketika beralih ke kartu baru yang (meskipun dinyatakan 16GB) sekitar 200MB lebih kecil dari kartu yang lebih lama.

Ini datang ke kepala ketika saya beralih beberapa RPis dari v1 ke model v2 baru, yang menggunakan kartu Micro SD.

Saya sekarang menyisakan sekitar 1GB gratis untuk memastikan bahwa gambar saya dapat beralih di antara kartu SD tanpa masalah.


Proses ini memakan waktu sekitar 10 menit dengan kartu 16 GB pada Pi saya.
Der Hochstapler

5
Ini jauh lebih sederhana daripada jawaban teratas. Ini adalah solusi untuk digunakan.
James Skimming

@JamesSkimming: Ini adalah solusi untuk digunakan untuk gambar Beta Debian-Wheezy. Bukan untuk orang lain.
SF.

Ini tidak berfungsi untuk Raspbian ketika diinstal dari NOOBS pada SDCard yang mereka kirim dengan kit RPi. ketika Anda mencoba untuk menjalankan opsi memperluas dikatakan bahwa itu tidak didukung oleh konfigurasi ini, tetapi karena Anda menjalankan noobs itu mungkin menggunakan semua ruang pula ... masalahnya adalah saya mencoba untuk merombak gambar 8GB ke Kartu 32GB
Eoin Campbell

Raspi-config tidak tahu bagaimana mengubah ukuran root Raspbian Wheezy. expand_rootfs seperti yang Anda sarankan menyebabkan masalah. Jawaban di atas Anda berfungsi seperti daya tarik dalam sistem live dan tidak perlu "meninggalkan sekitar 1 GB".
GTodorov

28

Jika Anda merasa tidak nyaman bekerja di baris perintah, seperti di Steve Robillards jawaban yang sangat baik, ada beberapa aplikasi GUI yang tersedia. Secara khusus gparted bekerja dengan sangat baik.

Saya pikir itu diinstal secara default pada Ubuntu LiveCD tetapi tidak pada sistem yang diinstal. Ada tentu saja memperbaiki mudah untuk ini: apt-get install gparted. Anda tidak dapat melakukan ini pada Pi aktual, karena untuk mengubah ukuran partisi mereka harus dilepas.

Gambar di bawah ini dalam bahasa Belanda, tapi jangan biarkan itu merusak kesenangan. Ini sangat mudah digunakan. Ini adalah tata letak gambar debian default pada kartu 8GB.

Diatur

Klik kanan partisi untuk meng-unmount, lalu klik kanan untuk mengubah ukuran atau memindahkan partisi. Anda juga dapat membuat partisi baru dan memformat yang sudah ada. Pada gambar di bawah ini saya telah menghapus partisi swap dan sekarang saya dapat mengubah ukuran partisi root ke seluruh ruang di sebelah kanannya. Jangan mengisinya sepenuhnya, karena Anda masih harus menambahkan partisi swap.

Ubah ukuran

Anda dapat bermain dengan tata letak partisi, perubahan hanya ditulis jika Anda menerapkan perubahan (tombol 'kembali' berwarna abu-abu di gambar pertama).

Sangat mudah untuk memindahkan partisi tetapi seperti dalam jawaban Steve, saya sarankan Anda menghapus partisi swap sepenuhnya, kemudian mengubah ukuran root dan kemudian menciptakan swap. Memindahkan partisi dapat memakan waktu yang sangat lama dan swap tidak berisi data yang perlu Anda simpan.


1
Saya telah menggunakan metode ini; bekerja seperti pesona.
Alex Chamberlain

Saya setuju. Saya telah menggunakan gparted untuk melakukan hal ini dan itu sangat mudah
JayDev

Jika Anda terhubung melalui VNC, jalankansudo -E gparted
forzagreen

Mungkin juga perlu menjalankan perintah berikut sebelum gpartedjika Anda menjalankan di bawah Wayland (tidak yakin masalah ini telah diatasi):xhost +SI:localuser:root
John Manko

11

Jika Anda menggunakan gambar Debian Wheezy yang lebih baru: http://www.raspberrypi.org/archives/1435 Script waktu boot memungkinkan Anda untuk mengubah ukuran untuk mengisi kartu sd secara otomatis.


1
Saya menggunakan Arch Linux.
Jivings

2
Bagaimana bisa melakukan hal seperti itu?

2
Ini adalah cara termudah untuk mengubah ukuran partisi untuk gambar wheezy terbaru.
Yuval Adam

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.