在openEuler上搭建LFS
LFS7.7-systemd on openEulers实验报告
一. 实验介绍
本次课程将“如何构建一个自己的Linux操作系统”的津要和盘托出,依托专门撰写的“构建脚本”,足以让我们能够顺利地完成构建LFS系统的基础工作。
二. 虚拟机的安装方式
- 下载Virtualbox或者vmvare软件,以vmvare为例;
- 下载要安装的操作系统如openEuler20.09的iso镜像;
- 在vmvare上创建虚拟机;
- 调整虚拟机参数,主要是内存大小,处理器数量,硬盘大小;
- 将openEuler镜像安装到光驱;
- 启动虚拟机,傻瓜式安装;
三. 从社区获取资料
- LFS官网:https://www.linuxfromscratch.org/lfs/
- openEuler社区:https://openeuler.org/
- build-lfs7.7systemd.sh 构建脚本
四. LFS系统的构建
linux操作系统的基本操作
- 安装工具
yum group install -y "Development Tools"
yum install -y bc
yum install -y openssl-devel
yum install -y texinfo # for makeinfo
yum install -y vim
- 关于分区
lsblk,blkid #显示硬盘分区信息
fdisk #对硬盘进行分区操作
mkfs -v -t ext4 /dev/sdb1 #格式化
- 关于ip
ip a | grep 192.168
- 基本操作
scp -r root@192.168.56.102:~/opc/lfs-course/ ./
linux操作系统的基本架构和实现原理
- 准备构建LFS系统所需的包和补丁
lfs-packages-7.7-systemd.tar
- 创建并以lfs用户编译临时工具链
- /mnt/lfs及lfs用户
1. 设置了$LFS环境变量
2. 在宿主机上创建相应文件夹
3. 将LFS系统将要编译和安装到的那个盘挂载进来
4. 创建lfs用户
- LFS/sources和LFS/sources 和LFS/sources和LFS/tools文件夹
- 构建LFS系统需要的包从本地拷贝到/mnt/lfs
- 这个包将会以lfs用户解压到$LFS/sources
- 另外请注意临时工具链都会安装到$LFS/tools
- 用编译指南
- 以lfs用户解压要编译的软件包
- 进入到解压后创建的目录中
- 根据指南说明编译软件包
- 回退到源文件目录
- 除非特别说明,删除解压出来的目录
- 对于gcc-4.9.2编译过程中的一个问题,非官方解决方案安装一个补丁
- 注意几次chmod和chown的作用
- 在chrooted环境下构建真正的LFS目标系统
- mount & chroot
和LFS-BOOK不同的是,我们允许您不断地重启宿主机系统,这在“构建脚本”中多次重启的命令也可以看出来。但在此节每次重启系统后,需要重新mount和chroot。为了可以在宿主机reboot后接着进行LFS系统的构建工作,建议将每次root登录进来之后的mount和chroot写成脚本
- 通用编译指南
- 进入chroot环境后解压要编译的软件包
- 进入到解压后创建的目录中
- 根据指南说明编译软件包
- 回退到源文件目录
- 除非特别说明,删除解压出来的目录
- 第二个版本的chroot
完成本节的编译安装工作后,由于不再需要/tools目录,在以后的任务中可以修改mount和chroot命令
- 配置LFS目标系统
本节为LFS系统进行网络、主机名、/etc/hosts文件的设置,其余的配置可以忽略。
- 编译并安装内核
本节进行内核的编译和安装。需要注意的是
make menu config
这一步,除LFS-BOOK中所提到的那些配置选项外,需要选择和虚拟机提供的硬件相匹配的驱动(特别是硬盘的驱动),否则以后启动新系统时系统将会mount不上sdb。
- 设置GRUB使新系统可引导
- LFS系统GRUB设置
LFS系统(即目前的chrooted环境)可以按以下命令生成grub.cfg文件:
grub-install /dev/sdb
grub-mkconfig -o /boot/grub/grub.cfg
- 宿主机GRUB设置
对于宿主机的GRUB设置,将LFS系统的grub.cfg中menuentry模块复制到宿主机/boot/grub2/grub.cfg中的相应位置即可。
- 进入新系统
重启系统,会出现LFS系统的选择项,移动键盘的上下键选中它,按回车键进入,以root用户登录,输入LFS-BOOK 6.25.3. Setting the root password节设置的密码。
五. 作业的提交
- 注册gitee账户
- 获取lfs-course的仓库地址
- 从git仓库获取资料
- Git的初始设置
git config --global user.name "your-user-name"
git config --global user.email "your-email-address-on-gitee"
- 克隆lfs-course仓库
mkdir ~/openEuler
cd ~/openEuler
git clone https://gitee.com/openeuler-practice-courses/lfs-course
cd lfs-course/
ls
LICENSE README.en.md README.md lfs-7.7-systemd/
4.提交作业
- 进入openEuler创新实践课官方代码仓
- 选择自己学校的代码仓进入
- 该页面上找到Fork按钮并fork之
- 先在gitee页面上拷贝仓库地址
- 在git命令窗口clone自己fork的仓库并进入仓库目录
- 新增上游远程分支
git remote add upstream https://gitee.com/openeuler-practice-courses/nankai_university_2021.git
git pull upstream
- 创建自己仓库的开发分支
git checkout -b zhaoyan upstream/master
git branch
- 同步上游代码
git pull --rebase
- 在自己的仓库下建立文件夹
mkdir 12306-zhaoyan
- 将自己的作业截图放到该文件夹下
- 增加此图片到仓库中
git add 12306-zhaoyan
git add 12306-zhaoyan /12306-zhaoyan.png
git status
- 提交至本地仓库
git commit -m "Push 12306-zhaoyan’s homework"
git status
- Push代码到自己的远程仓库
git push origin zhaoyan
git log
- 到gitee网页查看自己的远程仓库
- 进行“Pull Requests”操作
- 首次需签署个人CLA
- 在原始远程仓检查提交情况
六. 实验总结
- 这次实验主要是对心态的考验,这次实验前期的一个问题是虚拟机的安装,下载的vmvare者virtualbox可能会报错,需要重装或者修改网卡连接方式。我在实验过程中发现自己所用的openEuler版本不兼容导致报错,最后解决了这个问题。
- 还有一个就是在对照bash文件进行粘贴的时候需要注意其中reboot命令处会被打断,为了方便复制粘贴,可以使用SSH连接。
- 实验过程中可能会报错,并且很难找到错误的原因,这个时候一方面需要有足够的耐心,另一方面还要有从头再来的勇气,当然,为了不要真的“从头”再来,不时地拍个快照是个不错的习惯。
在openEuler上搭建LFS相关推荐
- vmware view 桌面源不可用_在 openEuler 上安装桌面环境
openEuler 是华为自主研发的,主要用于其鲲鹏服务器上的一款基于 CentOS 修改而来的 Linux 发行版. 有句名言要牢记,国外一开源,国内就自主. 本来作为已经叛逃到 macOS 的老 ...
- 在Ubuntu 12.04 64bit上搭建Crtmpserver视频直播服务
本篇博客继续在上篇<在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务> http://blog.csdn.net/tao_627/article/detail ...
- Ubuntu 12.04 64bit或者CentOS 6.3 64bit上搭建OpenRTMFP/Cumulus服务器
Ubuntu 12.04 64bit或者CentOS 6.3 64bit上搭建OpenRTMFP/Cumulus服务器 2013-12-25 1.从官网下载源码包 cd ~/progrom_devel ...
- 在CentOS 6.2上搭建vim开发环境
在CentOS 6.2上搭建vim开发环境 最后更新日期:2013-07-05 1.首先使用Ubuntu(所在ip为192.168.16.230)翻墙登陆http://www.vim.org/,下载其 ...
- ubuntu14.04上搭建android开发环境
这几天心血来潮,想在ubuntu上写写android软件.所以就上网找些资料在ubuntu上搭建android环境.结果要么时不完整的,要么就是过时的. 所以我把我搭建android环境的过程写下了, ...
- 在Windows上搭建Git Server
Git在版本控制方面,相比与SVN有更多的灵活性,对于开源的项目,我们可以托管到Github上面,非常方便,但是闭源的项目就会收取昂贵的费用. 那么私有项目,如何用Git进行代码版本控制呢?我们可以自 ...
- 如何在您的笔记本上搭建View 演示环境 -5.配置View Connection Server
步骤1:登录View Manager控制台 "https://您的View Connection Server的IP/admin"来访问控制台,输入域用户名和密码. 步骤2:配置V ...
- 使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务
使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务 一.基于于NAT的LVS的安装与配置. 1. 硬件需求和网络拓扑 ...
- 在archlinux上搭建twitter storm cluster
本文详细描述如何在archlinux上搭建twitter storm cluster,转载请注明出处,谢谢. 有关archlinux基本系统安装,请参照archlinux简明安装指南一文,下面以上述为 ...
- 在Win7的IIS上搭建FTP服务及用户授权
FTP服务 FTP是文件传输协议(File Transfer Protocol)的简称,该协议属于应用层协议(端口号通常为21),用于Internet上的双向文件传输(即文件的上传和下载).在网络上有 ...
最新文章
- Java Comparator 珍藏版
- leetcode算法题--扑克牌中的顺子
- [转载].Freescale.伦德全 - 电路板级的电磁兼容设计
- 宇泽电影工作室网页HTML语言,4.4宇泽国际旅行社网页制作
- redis/分布式文件存储系统/数据库 存储session,解决负载均衡集群中session不一致问题...
- opcache开启和关闭
- linux卸载es,Ubuntu卸载elasticsearch
- CodeForces 1610H Squid Game(延迟贪心 + 构造 + 树状数组)
- JBoss Fuse 6.2发布–指导如何快速尝试
- [原创]django+ldap实现统一认证部分一(django-auth-ldap实践)
- 如何解决anaconda出现CondaHTTPError问题
- Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre
- python中pip有啥用_python的pip有什么用
- Lua调用C的动态库
- 觅知blibli专业版弹幕播放器开源无加密JSON解析版-后台功能一键管理-开源版22-8-24
- 关于BOM表的一些事
- 打开 Windows 10 默认共享
- RGB-D相机(Azure Kinect DK)RGB图、深度图的获取,配准与保存
- 浅谈一下Program Files和Program Files(x86)
- Excel如何将一个单元格数据拆分为多行单元格
热门文章
- Java学习之基础知识2
- 领导力培训知识点汇总及感悟-1
- 物联网和边缘部署的5大嵌入式工控机设计要求
- 徐思201771010132《面向对象程序设计(java)》第七周学习总结
- win7开启ftp被动模式_什么是FTP功能?Win7旗舰版下如何开启FTP功能?
- 蚂蚁金服入职考试_我是如何拿到蚂蚁金服实习 offer 的
- b类 蚂蚁金服_终于拿到蚂蚁金服Offer!!!分享一下全程面试题和面试经验!...
- 萌新小白,求大神解答
- A卡核显N卡独显笔记本Deepin20环境下配置双显卡驱动和CUDA
- 万用表测电容方法-电子技术方案