Dengan cara ini Anda memulai Raspberry Pi Anda dari USB atau jaringan Anda

Anda biasanya mem-boot Raspberry Pi dari kartu (mikro) SD. Tapi terkadang itu sangat tidak nyaman. Baru-baru ini, pengembang keluarga komputer mini telah menambahkan dua mode boot baru: USB dan jaringan. Dengan mode USB, Anda dapat memulai Raspberry Pi dari sistem operasi pada stik USB atau hard drive yang Anda sambungkan melalui USB.

Dengan mode jaringan, Anda bahkan tidak memerlukan perangkat penyimpanan lokal: Raspberry Pi mengunduh sistem operasinya melalui jaringan dari komputer lain. Dengan cara ini Anda dapat dengan mudah memulai beberapa Raspberry Pi melalui sistem operasi di komputer pusat. Jika Anda memperbarui sistem operasi pusat itu, semua Raspberry Pi Anda akan secara otomatis menjalankan versi terbaru.

01 Mode perahu eksperimental

Mode boot baru bersifat eksperimental dan dikembangkan untuk Raspberry Pi 3. Kode boot yang diperlukan untuk ini terdapat dalam BCM2837: prosesor Raspberry Pi 3. Jika Anda memiliki Raspberry Pi 1, 2 atau Zero, Anda dapat juga menggunakan mode boot baru, tetapi secara tidak langsung: format kartu sd dengan FAT32, salin file bootcode.bin ke kartu dan boot Pi Anda dari kartu ini. Itu mungkin tidak lengkap tanpa kartu SD, tetapi Anda dapat mem-boot Pi Anda dari USB atau jaringan.

02 Kemungkinan masalah dengan usb

Booting dari USB tidak selalu berfungsi. Misalnya, beberapa stik USB aktif terlalu lambat. Hard drive eksternal tidak selalu merespons dalam dua detik, waktu tunggu kode boot secara default. Anda dapat menambah batas waktu tersebut menjadi lima detik, tetapi beberapa disk bahkan tidak akan siap. Stik USB lain memiliki persyaratan yang sangat spesifik untuk protokol komunikasi, yang tidak dipenuhi oleh kode boot Raspberry Pi 3 (terbatas pada 32 kB rom). Jadi Anda mungkin harus mencoba beberapa disk.

03 Peningkatan firmware

Kami berasumsi bahwa Raspbian Anda berjalan di Raspberry Pi Anda. Jika tidak, unduh gambar dan letakkan di kartu SD dengan program Win32DiskImager dan boot Pi darinya. Pertama, segarkan semua repositori dengan sudo apt-get update . Jika Anda menjalankan Raspbian Lite (versi tanpa antarmuka grafis), jalankan sudo apt-get install rpi-update terlebih dahulu karena Raspbian versi minimal tersebut tidak memiliki paket pembaruan rpi. Kemudian perbarui firmware dari cabang 'berikutnya' dengan sudo BRANCH = next rpi-update .

04 Mengaktifkan mode USB

Buka file konfigurasi boot dengan sudo nano /boot/config.txt dan tambahkan perintah program_usb_boot_mode = 1 di bagian akhir. Simpan file dengan Ctrl + O dan tutup nano dengan Ctrl + X. Reboot Pi Anda dengan sudo reboot , dan setelah reboot periksa apakah mode usb diaktifkan. Anda melakukannya dengan perintah vcgencmd otp_dump | grep 17 :, yang akan mengembalikan angka yang diakhiri dengan 0x3020000a . Kemudian buka file konfigurasi boot lagi dan hapus perintah program_usb_boot_mode = 1 , jadi Anda tidak secara tidak sengaja mengaktifkan mode boot usb pada Pi lain tempat Anda memasukkan kartu SD ini.

05 Mempartisi penyimpanan USB

Sekarang hubungkan perangkat penyimpanan usb Anda ke Pi Anda. Partisi perangkat ini dengan sudo parted / dev / sda . Buat tabel partisi baru dengan mktable msdos dan konfirmasikan dengan Ya bahwa Anda ingin menghancurkan semua data di disk. Kemudian buat partisi fat32 100 megabyte dengan mkpart primary fat32 0% 100M dan partisi ext4 yang akan menempati sisa disk dengan mkpart primary ext4 100M 100% . Lihat perubahan dengan print dan tutup parted dengan berhenti . Kemudian buat sistem file boot dengan sudo mkfs.vfat -n BOOT -F 32 / dev / sda1 dan sistem file root dengan sudo mkfs.ext4 / dev / sda2 .

06 Salin Raspbian

Instal program rsync dengan sudo apt-get install rsync . Kemudian buat direktori baru dengan sudo mkdir / mnt / usb dan pasang sistem file ext4 dari penyimpanan usb di dalamnya dengan sudo mount / dev / sda2 / mnt / usb / . Kemudian buat direktori boot dengan sudo mkdir / mnt / usb / boot dan pasang sistem file boot dengan sudo mount / dev / sda1 / mnt / usb / boot / . Sekarang salin sistem Raspbian yang Anda jalankan dari kartu SD ke sistem file di penyimpanan USB Anda. Anda melakukan ini dengan perintah sudo rsync -ax --progress / / boot / mnt / usb . Harap bersabar karena mungkin perlu beberapa saat.

07 Chroot

Penyimpanan USB sekarang berisi salinan Raspbian Anda yang sedang berjalan, tetapi tidak semuanya bisa identik. Misalnya, sistem baru membutuhkan kunci ssh yang berbeda. Oleh karena itu, buka penyimpanan usb dengan cd / mnt / usb dan pasang beberapa sistem file khusus dengan sudo mount --bind / dev dev, sudo mount --bind / sys sys dan sudo mount --bind / proc proc . Kemudian chroot (ganti root) dengan sudo chroot.Semua perintah yang Anda jalankan sekarang akan dijalankan di sistem di penyimpanan usb, bukan di sistem di kartu sd.

08 Kunci ssh baru

Anda sekarang adalah pengguna root di chroot. Pertama hapus kunci ssh yang ada karena itu adalah yang kami salin dari sistem dari kartu sd. Anda melakukannya dengan rm / etc / ssh / ssh_host * . Setelah itu, buat kunci ssh baru dengan mengkonfigurasi ulang server OpenSSH dengan dpkg-reconfigure openssh-server . Kemudian keluar dari chroot dengan keluar . Semua perintah yang sekarang Anda jalankan akan dieksekusi lagi di sistem pada kartu SD. Kemudian putuskan sistem file khusus dengan sudo umount dev, sudo umount sys dan sudo umount proc .

09 Menyesuaikan sistem file root

Sekarang pastikan Pi menggunakan sistem file root pada penyimpanan usb, bukan yang ada di kartu sd. Untuk melakukannya, edit file / boot / cmdline.txt dengan sudo sed -i "s, root = / dev / mmcblk0p2, root = / dev / sda2 , " /mnt/usb/boot/cmdline.tx t. Lakukan hal yang sama pada file / etc / fstab: sudo sed -i "s, / dev / mmcblk0p, / dev / sda," / mnt / usb / etc / fstab . Setelah itu masuk ke direktori home Anda dengan cd, unmount sistem file dari penyimpanan usb dengan sudo umount / mnt / usb / boot dan sudo umount / mnt / usb dan matikan Pi dengan sudo poweroff . Cabut kabel power, lepaskan kartu SD dan pasang kembali kabel power. Jika semuanya berjalan dengan baik, Pi Anda sekarang akan boot dari penyimpanan USB Anda.