cattyhouse / N1-install

Install Archlinux on Phicomm N1
94 stars 19 forks source link

启动过程的问题 #8

Closed JustinWuCN closed 2 years ago

JustinWuCN commented 2 years ago

按文档里的描述:

启动原理 第一步 : N1 内置 u-boot -> 优先寻找 U盘 -> 寻找 boot 分区的 s905_autoscript -> 根据这个 s905_autoscript 的内容加载新的 u-boot, 也就是 u-boot.ext

启动原理 第二步 : 根据 u-boot.ext 内置的脚本依次执行 : bootcmd -> distro_bootcmd -> boot_targets -> bootcmd_usb0 -> usb_boot -> scan_dev_for_boot_part -> scan_dev_for_boot -> scan_dev_for_extlinux -> boot_extlinux, 然后找到了 extlinux.conf

启动原理 第三步 : 根据 extlinux.conf 的设置, 定位 root 分区 -> 寻找 zImage 和 uInitrd 也就是安装 kernel 后生成的 两个文件. 至此, 控制权交给了 linux 内核.

第一步指的内置u-boot 是哪个文件? 我计划把archlinux安装到U盘里,是还需要内置u-boot才能启动吗? 如果我把emmc格式化掉,那是不是再也不能使用这个U盘系统启动了?

接上一个问题,那把内置u-boot也拷贝一份到U盘里,是不是就可以保证U盘可以启动了?具体要拷贝哪几个文件呢?

现在我安装的是armbian. 是要把boot目录下的所有文件都拷贝到U盘里吗? 如果我要把archlinux安装到EMMC,还要保留这个目录里的文件吗?

justin@arm-64:/boot$ ls -lrt
total 55824
-rwxr-xr-x 1 root root 27857408 Jul  6  2020 zImage
-rwxr-xr-x 1 root root  5690310 Jul  6  2020 System.map-5.7.7-arm-64
-rwxr-xr-x 1 root root   214404 Jul  6  2020 config-5.7.7-arm-64
drwxr-xr-x 5 root root     8192 Jul 29  2020 dtb
-rwxr-xr-x 1 root root      990 Jul 29  2020 boot.scr.aw
-rwxr-xr-x 1 root root      836 Jul 29  2020 boot.scr
-rwxr-xr-x 1 root root      836 Jul 29  2020 boot-emmc.scr.aw
-rwxr-xr-x 1 root root      571 Jul 29  2020 boot-emmc.ini
-rwxr-xr-x 1 root root      764 Jul 29  2020 boot-emmc.cmd.aw
-rwxr-xr-x 1 root root      764 Jul 29  2020 boot-emmc.cmd
-rwxr-xr-x 1 root root      918 Jul 29  2020 boot.cmd.aw
-rwxr-xr-x 1 root root      957 Jul 29  2020 boot.cmd
-rwxr-xr-x 1 root root    38518 Jul 29  2020 boot.bmp
-rwxr-xr-x 1 root root     1536 Jul 29  2020 armbian_first_run.txt.template
-rwxr-xr-x 1 root root   709768 Jul 29  2020 u-boot.usb
-rwxr-xr-x 1 root root   709768 Jul 29  2020 u-boot.sd
-rwxr-xr-x 1 root root      759 Jul 29  2020 emmc_autoscript.cmd
-rwxr-xr-x 1 root root      831 Jul 29  2020 emmc_autoscript
-rwxr-xr-x 1 root root     1317 Jul 29  2020 uEnv.txt
-rwxr-xr-x 1 root root 10896828 Mar 10 11:07 initrd.img-5.7.7-arm-64
-rwxr-xr-x 1 root root 10896892 Mar 10 11:07 uInitrd
cattyhouse commented 2 years ago

内置u-boot 是在MMC上的某个区块的. mmc 格式化要谨慎, 如果全部格式化了, 那么N1就变砖头了. mmc格式化详见 : https://github.com/cattyhouse/N1-install/tree/master

无论是优盘启动还是mmc启动, 都是先从内置的 uboot 开始引导的.

如果你打算安装 arch, 那么 armbian的那些文件没有什么用的.

JustinWuCN commented 2 years ago

谢谢!大概明白了.原来还是要在EMMC里有一个u-boot. 通过你的文档和回复,现在已经成功把archlinux安装到了U盘.