Apakah mungkin untuk mendapatkan kembali memori yang digunakan oleh initrd?

1

Saya sedang mengembangkan proses boot untuk perangkat tertanam. Saat ini saya menggunakan initrd (tidak terkompresi 4 MB) untuk dapat mengatur partisi root saya sebelum melanjutkan untuk boot (saya harus memilih partisi berdasarkan beberapa informasi, dan overlay yang lain menggunakan unionfs).

Namun, saya khawatir bahwa memori yang digunakan untuk sistem file initrd secara permanen dicadangkan untuk penggunaan itu, meskipun itu hanya diperlukan untuk waktu boot kurang dari beberapa detik. Perangkat ini hanya memiliki 256 MB RAM, dan 4 MB ini tampaknya signifikan.

  • Apakah ada cara untuk mendapatkan kembali memori ini?
  • Jika saya menggunakan initramfs alih-alih initrd, apakah ini akan membelikan saya sesuatu?
  • Apakah ada opsi lain?
Steve
sumber

Jawaban:

1

Memori yang digunakan oleh initrd / initramfs dibebaskan setelah selesai dengan mis. ketika fs root yang sebenarnya sudah terpasang. Jadi biasanya Anda harus khawatir tentang ini. Pertanyaan Anda menunjukkan bahwa Anda tidak menggunakan initrd / initramfs sebagai run-time root fs Anda, sehingga memori yang digunakan untuk itu dibebaskan secara otomatis.

Untuk lebih jelasnya, lihat bagian initrd dari dokumentasi kernel di bawah judul "Mengubah perangkat root".

Sami Laine
sumber
Saya tidak melihat apa pun di dokumen itu yang mengatakan saya tidak perlu khawatir tentang hal itu, tetapi sepertinya saya harus melepas initrd kemudian membebaskan RAM sendiri. Namun, ketika saya mencoba meng-unmount initrd, saya membuat "perangkat atau sumber daya sibuk". Diterima karena dokumen itu memang berisi jawabannya :)
Steve
Sudahlah! Ternyata devtmpfs masih terpasang di bawah direktori initrd.
Steve