Saya ingin menyiapkan distro untuk beberapa teman.
Karena saya tidak memiliki apa pun yang tergeletak di sekitar, saya menggunakan kartu SD 16Gb.
Saya mulai dengan gambar default Debian Weezy 2Gb dan tidak mengubah ukuran.
Sekarang, ketika saya selesai, saya ingin membuat gambar dari apa yang saya lakukan, tetapi saya mendapatkan file 16Gb, berisi 14Gb ruang yang tidak dipartisi (tidak dipartisi dan kosong ) pada akhirnya.
[Saya menggunakan Windows // Win32DiskImager karena saya tidak punya apa-apa untuk menempel ke rPI sekarang]
Bisakah saya memotong file gambar tepat di belakang ruang yang dipartisi dan mentransfer bagian terkemuka ke kartu yang lebih kecil?
dd if=/dev/path/to/SD/card of=~/SpecialImage.img
, lalu instal GParted dan jalankangparted ~/SpecialImage.img
. Setelah GParted membuka.img
file Anda , cukup ubah ukuran partisi sesuai keinginan Anda! (Kedua perintah harus dijalankan sebagai root,sudo su
harus memberi Anda apa yang Anda butuhkan. Ketika$
beralih ke#
, Anda Root. Hati-hati, ini adalah setara dengan Linux.) alat yang Anda butuhkan. Menggunakan GParted hanya membuat semuanya jadi lebih sederhana dan lebih mudah untuk berhasil.Jawaban:
Saya akhirnya menemukan sumber yang menjelaskan pertanyaan saya.
Pendek:
Ya, memotong mungkin!
Ringkasan proses:
Mengekstrak informasi partisi dari gambar menggunakan
fdisk
:Kita lihat, bahwa partisi memiliki ukuran sekitar 2,8Gb (5872026 * 512), sisanya tidak dipartisi .
Jadi, semuanya setelah akhir partisi dapat dihapus.
Ini akan dilakukan dengan alat
truncate
. Jangan lupa menambahkan 1 ke jumlah sektor, karena angka blok dimulai dari 0.Edit:
Bagi mereka terlalu malas untuk beralih ke Linux:
Juga bekerja pada Windows dengan Cygwin 's
fdisk.exe
dantruncate.exe
!Apa itu Cygwin?
Saya dapat mengutip: "Cygwin: Dapatkan perasaan Linux - pada Windows" ( https://www.cygwin.com/ ).
Ini adalah sekumpulan executable yang dapat berjalan di bawah Windows, tetapi menyediakan semua program baris perintah yang biasanya Anda ketahui dari Linux. Cygwin dapat membutuhkan waktu sangat lama untuk menginstal jika Anda memilih setiap paket selama instalasi, tetapi untuk mengikuti contoh ini, cukup pastikan, bahwa selain konfigurasi default, juga paket
util-linux
(fdisk) dancoreutils
(truncate) dipilih.Tergantung pada lingkungan Anda, Anda perlu menambahkan
/usr/bin
dan/usr/sbin
ke Anda$PATH
.sumber
fdisk.exe
dantruncate.exe
?Saya tahu ini adalah pertanyaan lama, tetapi saya ingin menunjukkan bagaimana melakukan proses ini di Mac, karena itu tidak semudah:
fdisk
tidak memiliki-l
opsi, dantruncate
tidak diinstal secara default:1. Langkah 1: Instal truncate di Mac OS X:
Anda perlu MacPorts atau Homebrew untuk ini. Saya menggunakan MacPorts. Jika Anda tidak memilikinya, silakan instal dulu.Tautan ke MacPorts
Sekarang, kita dapat menginstal truncate . Buka Terminal Anda dan ketik:
Untuk instalasi Brew:
Ini harus dilakukan.
2. Gunakan Disk Utilities untuk memasang IMG kami sehingga dapat dilihat oleh perintah terminal diskutil .
Anda akan segera melihat mengapa kami membutuhkan langkah ini. Buka aplikasi Disk Utility. Klik pada File (di bar bagian atas) -> Buka Disk Image dan pilih file IMG Anda.
3. Periksa ukuran partisi IMG dan di mana ia dipasang.
Di Terminal, ketik:
Dan itu akan menunjukkan sesuatu seperti ini, di suatu tempat pada akhirnya:
Jadi, kita melihat bahwa sekitar 12GB tidak dipartisi. Kita harus memotongnya.
Alasan kami membutuhkan perintah ini adalah untuk memeriksa di mana disk image dipasang. Dalam kasus saya, ini berada di bawah: / dev / disk3
4. Cari tahu ukuran partisi sebenarnya.
3,9 GB dan 62,9 MB adalah nilai yang tidak akan berfungsi dengan truncate. Kita perlu menemukan ukuran partisi dalam byte.
5. Jalankan fdisk .
Di Terminal Anda, jalankan perintah ini:
Di mana X adalah angka yang Anda temukan pada langkah sebelumnya. Ini akan menghasilkan sesuatu seperti ini:
6. Waktu untuk memotong !
Di terminal Anda,
cd
ke direktori gambar Anda. Lalu menulis:FILE tentu saja file Anda.
UKURAN adalah ukuran dalam byte. Apa yang saya lakukan, adalah menambahkan ke kolom ukuran
fdisk
perintah, kolom awal dan kalikan dengan 512. Jadi, dalam kasus saya UKURAN akan menjadi: 512 * (7553024 + 131072) = 3934257152 , yaitu sekitar 3,9 GB.Anda akan membutuhkan awal dan ukuran dari partisi terakhir yang ditunjukkan oleh
fdisk
. (Belum tentu yang terbesar, tetapi yang ada di akhir file IMG)7. (Opsional) Mudah menguji apakah IMG tidak rusak.
Buka sekali lagi di Disk Utility, dan cobalah untuk membuka file IMG baru seperti sebelumnya. Jika dipasang, Anda juga dapat melihat ukuran baru (lebih kecil) . Jika tidak dipasang, ada yang salah. (Mungkin mencoba menambah ukuran pada
truncate
perintah)Saya harap seseorang menemukan ini bermanfaat!
sumber
512*(Size+1)
tidak bekerja. Seperti yang Anda lihat, saya menggunakanEnd
dan tidakSize
, karena Anda harus menjaga kedua partisi jika ada lebih dari satu. Jadi, menggunakan7553024 + 131072
(+1
) 100% benar!Win32DiskImager baru-baru ini sebenarnya memiliki opsi untuk hanya menyertakan partisi yang dialokasikan dalam disk image. Ini akan melakukan pemotongan dalam satu klik.
sumber
Hanya sesuatu yang baru-baru ini saya perhatikan ketika saya melakukan banyak operasi Win32diskimg ini untuk membuat cadangan gambar RPI saya untuk ditempatkan. Saya baru-baru ini mulai menguji SD "trimming" fstrim untuk membersihkan bagian dari kartu SD yang tidak digunakan untuk leveling keausan teoritis. Tidak yakin tentang efek yang akan dimilikinya tetapi satu efek samping adalah ketika saya mencitrakan partisi SD 16GB dan kemudian menggunakan 7zip untuk mengompresnya. Saya beralih dari 16GB menjadi 9.5GB menjadi file 2.5GB. Saya menguji sekarang untuk memastikan tidak ada yang salah tetapi tampaknya menggunakan TRIM untuk menandai ruang yang tidak digunakan sebagai 0 membuat kompresi gambar jauh lebih efisien (yang memang masuk akal). Hanya ingin melaporkan hal ini sangat mudah dilakukan dan tidak ada beberapa langkah.
sumber