# 作業系統燒錄

Banana Pi M64內鍵有8G的eMMC flash可以使用，如果已插入sd卡，在開機時會優先載入sd的系統，如果要使用emmc內的系統，請先移除sd卡後重新開機即可。

## 燒錄Linux系統到microSD卡

在mac下使用[etcher](https://etcher.io)燒錄image到sd卡，進入官方網站 <https://etcher.io> 後在下拉選單的地方可以依自已的作業系統做選擇下載，[etcher](https://etcher.io)支援Windows、Linux及macOS，下載安裝好，執行後會出現如下的軟體畫面，整個軟體的操作非常簡單，就如畫面中的三個選項，依順執行就可以完成燒錄。

![](https://2618987405-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LdydZPliXiG2wnHDyCm%2F-Ldyd_Wjw5Jz5h3MZr8t%2F-LdydcOcBlYDSs2j-VzV%2Fetcher.png?generation=1556903012324157\&alt=media)

* **Select image**：點選後會跳出檔案管理的視窗，請自行選擇要燒錄的檔案

  ![](https://2618987405-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LdydZPliXiG2wnHDyCm%2F-Ldyd_Wjw5Jz5h3MZr8t%2F-LdydcOnZE_cPQDyjBrS%2Fetcher_main.png?generation=1556903012681401\&alt=media)
* **Select drive**：這一步基本上電腦有連接sd卡時，會自動載入，不而要另外做選擇，除非電腦連接多個行動裝置，包含usb隨身碟，可以點選下方的「Change」，會跳出「Select a Drive」的畫面，確認要燒錄的設備後點選「Continue」\
  ![](https://2618987405-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LdydZPliXiG2wnHDyCm%2F-Ldyd_Wjw5Jz5h3MZr8t%2F-LdydcOpWJumxF8gZUGd%2Fetcher_main2.png?generation=1556903012747306\&alt=media)\
  ![](https://2618987405-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LdydZPliXiG2wnHDyCm%2F-Ldyd_Wjw5Jz5h3MZr8t%2F-LdydcOrh95nTj1n4oMy%2Fetcher_main3.png?generation=1556903012260408\&alt=media)
* **Flash!**：要燒錄的檔案及設備都選好後，「Flash!」就會出現藍底白字，代表可以開始燒錄，點選後，會出現橘色底白色字，「x% Flashing」，執行到100%後會出現「Flash Complete!」的畫面，退出sd卡，然後放到樹梅派或香蕉派中開機![](https://2618987405-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LdydZPliXiG2wnHDyCm%2F-Ldyd_Wjw5Jz5h3MZr8t%2F-LdydcOtTRRHMqPHucZd%2Fetcher_flash.png?generation=1556903011722238\&alt=media)![](https://2618987405-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LdydZPliXiG2wnHDyCm%2F-Ldyd_Wjw5Jz5h3MZr8t%2F-LdydcOvqeaTUrHqNRoC%2Fetcher_flash2.png?generation=1556903011690833\&alt=media)
* **Settings**：在etcher主畫面的右上角有一個齒輪圖案，點選後會進入Settings畫面，會修改的選項主要是第2、3項，「Auto-unmount on success」勾選此選項，在燒錄完成後會自動卸載所燒錄的sd卡，「Validate write on success」勾選後在燒錄完成後會執行驗證的動作，會需要較多的時間，勾選設定完成後，再點選右上角的「Back」回主畫面即可。![](https://2618987405-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LdydZPliXiG2wnHDyCm%2F-Ldyd_Wjw5Jz5h3MZr8t%2F-LdydcOxC9_vNz61G25t%2Fetcher_setting.png?generation=1556903013146899\&alt=media)

## 燒錄Linux系統到eMMC Flash

在Banana Pi M64上要把Linux系統燒錄到eMMC Flash，要先完成[燒錄Linux系統到microSD卡](#燒錄linux系統到microsd卡)，因為要透過在microSD卡上的系統去執行，請依以下的步驟執行

* [燒錄Linux系統到microSD](#燒錄linux系統到microsd卡)，請參考上方的說明，燒錄好後放入bpi設備，並且開機進入系統
* [延伸系統空間](https://gxiangco.gitbook.io/moodlebox-on-banana-pi/chapter7)
* 下載linux image檔([2018-01-05-ubuntu-16.04-mate-desktop-v1.0-bpi-m64-sd-emmc.img.zip](https://drive.google.com/file/d/1GJcUPzeHtK6THk7_3ke5uevDqc-NzRF3/view?usp=sharing))到sd卡的系統中，注意官網下載的是zip檔，要執行指令unzip 2018-01-05-ubuntu-16.04-mate-desktop-v1.0-bpi-m64-sd-emmc.img.zip，解壓縮完後會有一個img檔(2018-01-05-ubuntu-16.04-mate-desktop-v1.0-bpi-m64-sd-emmc.img)，燒錄到emmc時要先解壓縮。

```
pi@bpi-iot-ros-ai:~$ unzip 2018-01-05-ubuntu-16.04-mate-desktop-v1.0-bpi-m64-sd-emmc.img.zip
Archive:  2018-01-05-ubuntu-16.04-mate-desktop-v1.0-bpi-m64-sd-emmc.img.zip
  inflating: 2018-01-05-ubuntu-16.04-mate-desktop-v1.0-bpi-m64-sd-emmc.img

pi@bpi-iot-ros-ai:~$ ls
2018-01-05-ubuntu-16.04-mate-desktop-v1.0-bpi-m64-sd-emmc.img      Documents  Pictures  Templates
2018-01-05-ubuntu-16.04-mate-desktop-v1.0-bpi-m64-sd-emmc.img.zip  Downloads  Public    Videos
Desktop                                                            Music      Scratch
```

* 查看目前的磁碟狀態，執行指令`sudo fdisk -l`，因為bpi有sd卡和emmc兩個磁碟，所以會看到/dev/mmcblk0(sd卡)和/dev/mmcblk1(emmc)，那因為要燒錄到emmc，所以要對/dev/mmcblk1做處理，不要選錯。

```
pi@bpi-iot-ros-ai:~$ sudo fdisk -l
[sudo] password for pi:
Disk /dev/mmcblk0: 29.7 GiB, 31914983424 bytes, 62333952 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
Disklabel type: dos
Disk identifier: 0x40216a58

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1      204800   729087   524288  256M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      729088 62333951 61604864 29.4G 83 Linux


Disk /dev/mmcblk1: 7.3 GiB, 7818182656 bytes, 15269888 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
Disklabel type: dos
Disk identifier: 0x40216a58

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk1p1      204800   729087   524288  256M  c W95 FAT32 (LBA)
/dev/mmcblk1p2      729088 14940159 14211072  6.8G 83 Linux


Disk /dev/mmcblk1boot1: 4 MiB, 4194304 bytes, 8192 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 /dev/mmcblk1boot0: 4 MiB, 4194304 bytes, 8192 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
```

* 清除emmc，執行指令`sudo dd if=/dev/zero of=/dev/mmcblk1`

```
pi@bpi-iot-ros-ai:~$ sudo dd if=/dev/zero of=/dev/mmcblk1
dd: writing to '/dev/mmcblk1': No space left on device
15269889+0 records in
15269888+0 records out
7818182656 bytes (7.8 GB, 7.3 GiB) copied, 1477.85 s, 5.3 MB/s
```

* 執行清除完成後，再執行指令`sudo fdisk -l`，會發現`/dev/mmcblk1p1`及`/dev/mmcblk1p2`被刪除

```
pi@bpi-iot-ros-ai:~$ sudo fdisk -l
Disk /dev/mmcblk0: 29.7 GiB, 31914983424 bytes, 62333952 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
Disklabel type: dos
Disk identifier: 0x40216a58

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1      204800   729087   524288  256M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      729088 62333951 61604864 29.4G 83 Linux


Disk /dev/mmcblk1: 7.3 GiB, 7818182656 bytes, 15269888 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 /dev/mmcblk1boot1: 4 MiB, 4194304 bytes, 8192 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 /dev/mmcblk1boot0: 4 MiB, 4194304 bytes, 8192 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
```

* 執行燒錄指令`sudo dd if=2018-01-05-ubuntu-16.04-mate-desktop-v1.0-bpi-m64-sd-emmc.img of=/dev/mmcblk1 bs=10MB`，執行結果如下

```
pi@bpi-iot-ros-ai:~$ sudo dd if=2018-01-05-ubuntu-16.04-mate-desktop-v1.0-bpi-m64-sd-emmc.img of=/dev/mmcblk1 bs=10MB
[sudo] password for pi:
765+1 records in
765+1 records out
7650410496 bytes (7.7 GB, 7.1 GiB) copied, 919.927 s, 8.3 MB/s
pi@bpi-iot-ros-ai:~$
```

* 執行關機指令`sudo shutdown -h now`
* 移除sd卡
* 開機進入燒錄在emmc的系統


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gxiangco.gitbook.io/moodlebox-on-banana-pi/chapter6.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
