To be a better coder
分类: LINUX
2019-12-26 18:16:32
下载centos7.51804的安装包CentOS-7-aarch64-Everything-1804.iso或CentOS-7-aarch64-Minimal-1804.iso均可,网址:,两者下一个即可,建议下载CentOS-7-aarch64-Minimal-1804.iso,体积更小下载更方便。
mount CentOS-7-aarch64-Minimal-1804.iso或CentOS-7-aarch64-Everything-1804.iso后提取镜像内部文件:LiveOS/squashfs.img,此文件实际上即是centos的rootfs文件,但是不能直接使用。继续将squashfs.img mount起来,然后进入mount的路径继续mount 文件LiveOS/rootfs.img,然后即可看到centos的整个内部文件系统了,如下图:
如果仅复制这些文件到根系统,通过uboot加载启动,你会发现系统根本无法启动,这是因为此rootfs默认启动方式为anaconda启动,uboot引导进入anaconda模式后会直接卡死。复制目录下的所有文件到根系统目录,删除
/etc/systemd/system/default.target
建立软连接
ln -s /usr/lib/systemd/system/multi-user.target etc/systemd/system/default.target
引导系统启动后进入multi-user模式。此时即可进入到centos系统,用户root,密码无,此时centos为纯净系统,除了基本命令外不带其他任何第三方命令,包括passwd、sudo、openssh、telnet、net-tools等等均没有,且yum命令报错找不到import yummain模块,无法使用。
复制CentOS-7-aarch64-Minimal-1804.iso或CentOS-7-aarch64-Everything-1804.iso中,Packages目录与yum相关的四个rmp包
yum-3.4.3-158.el7.centos.noarch.rpm、
yum-metadata-parser-1.1.4-10.el7.aarch64.rpm、
yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm
centos-release-7-5.1804.el7.centos.a.aarch64.rpm
然后启动进入centos后执行:
rpm2cpio yum-3.4.3-158.el7.centos.noarch.rpm|cpio -idumv
rpm2cpio yum-metadata-parser-1.1.4-10.el7.aarch64.rpm|cpio -idumv
rpm2cpio yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm|cpio -idumv
rpm2cpio centos-release-7-5.1804.el7.centos.a.aarch64.rpm|cpio -idumv
修改文件/etc/yum.repos.d/CentOS-Base.repo中所有$releasever为7.5.1804
(可在vim中输入:%s/$releaseve/7.5.1804/g来全局替换)
然后yum -help,yum命令已经可以使用,通过ip addr 配置ip后,即可用yum安装基本的命令和一些第三方常用库如:passwd、sudo、openssh、telnet、net-tools等。
一个嵌入式系统从软件角度来看分为三个层次:
1.引导加载程序
包括固化在固化中的boot程序(可选),和BootLoader两大部分
2.linux内核
特定于嵌入式平台的定制内核
3.文件系统
包括了系统命令和应用程序
--------------------------------------------------------------------------------
BootLoader-->Boot Parameters-->Kernel-->Root Filesystem
--------------------------------------------------------------------------------
??GNU GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。可用来用来引导不同系统,如windows,linux,通常用于linux,毕竟是GNU的嘛。
??Windows也有类似的工具NTLOADER、Bootmgr;比如我们在机器中安装了Windows
98后,我们再安装一个Windows XP ,在机器启动的会有一个菜单让我们选择进入是进入Windows 98 还是进入Windows
XP。NTLOADER就是一个多系统启动引导管理器,NTLOADER 同样也能引导Linux,只是极为麻烦罢了。Bootmgr是Boot
Manager的缩写,是在Windows Vista、Windows 7、windows 8/8.1和windows
10中使用的新的启动管理器,以代替Windows NT系列操作系统(Windows XP、Windows
2003)中的启动管理器——NTLOADER。
??U-Boot,全称为Universal Boot Loader,即通用Bootloader,是遵循GPL条款的开放源代码项目。其前身是由德国DENX软件工程中心的Wolfgang
Denk基于8xxROM的源码创建的PPCBOOT工程。后来整理代码结构使得非常容易增加其他类型的开发板、其他架构的CPU(原来只支持
PowerPC);增加更多的功能,比如启动Linux、下载S-Record格式的文件、通过网络启动、通过PCMCIA/CompactFLash
/ATA disk/SCSI等方式启动。增加ARM架构CPU及其他更多CPU的支持后,改名为U-Boot。