LFS7.7-systemd on openEulers实验报告

一. 实验介绍

本次课程将“如何构建一个自己的Linux操作系统”的津要和盘托出,依托专门撰写的“构建脚本”,足以让我们能够顺利地完成构建LFS系统的基础工作。

二. 虚拟机的安装方式

  1. 下载Virtualbox或者vmvare软件,以vmvare为例;
  2. 下载要安装的操作系统如openEuler20.09的iso镜像;
  3. 在vmvare上创建虚拟机;
  4. 调整虚拟机参数,主要是内存大小,处理器数量,硬盘大小;
  5. 将openEuler镜像安装到光驱;
  6. 启动虚拟机,傻瓜式安装;

三. 从社区获取资料

  1. LFS官网:https://www.linuxfromscratch.org/lfs/
  2. openEuler社区:https://openeuler.org/
  3. build-lfs7.7systemd.sh 构建脚本

四. LFS系统的构建

linux操作系统的基本操作

  1. 安装工具
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
  1. 关于分区
lsblk,blkid #显示硬盘分区信息
fdisk #对硬盘进行分区操作
mkfs -v -t ext4 /dev/sdb1 #格式化
  1. 关于ip
ip a | grep 192.168
  1. 基本操作
scp -r root@192.168.56.102:~/opc/lfs-course/ ./

linux操作系统的基本架构和实现原理

  1. 准备构建LFS系统所需的包和补丁

lfs-packages-7.7-systemd.tar

  1. 创建并以lfs用户编译临时工具链
  • /mnt/lfs及lfs用户
1. 设置了$LFS环境变量
2. 在宿主机上创建相应文件夹
3. 将LFS系统将要编译和安装到的那个盘挂载进来
4. 创建lfs用户
  • LFS/sources和LFS/sources 和LFS/sources和LFS/tools文件夹

    1. 构建LFS系统需要的包从本地拷贝到/mnt/lfs
    2. 这个包将会以lfs用户解压到$LFS/sources
    3. 另外请注意临时工具链都会安装到$LFS/tools
  • 用编译指南
    1. 以lfs用户解压要编译的软件包
    2. 进入到解压后创建的目录中
    3. 根据指南说明编译软件包
    4. 回退到源文件目录
    5. 除非特别说明,删除解压出来的目录
    6. 对于gcc-4.9.2编译过程中的一个问题,非官方解决方案安装一个补丁
    7. 注意几次chmod和chown的作用
  1. 在chrooted环境下构建真正的LFS目标系统
  • mount & chroot

和LFS-BOOK不同的是,我们允许您不断地重启宿主机系统,这在“构建脚本”中多次重启的命令也可以看出来。但在此节每次重启系统后,需要重新mount和chroot。为了可以在宿主机reboot后接着进行LFS系统的构建工作,建议将每次root登录进来之后的mount和chroot写成脚本

  • 通用编译指南

    1. 进入chroot环境后解压要编译的软件包
    2. 进入到解压后创建的目录中
    3. 根据指南说明编译软件包
    4. 回退到源文件目录
    5. 除非特别说明,删除解压出来的目录
  • 第二个版本的chroot

    完成本节的编译安装工作后,由于不再需要/tools目录,在以后的任务中可以修改mount和chroot命令

  1. 配置LFS目标系统

本节为LFS系统进行网络、主机名、/etc/hosts文件的设置,其余的配置可以忽略。

  1. 编译并安装内核

本节进行内核的编译和安装。需要注意的是make menu config这一步,除LFS-BOOK中所提到的那些配置选项外,需要选择和虚拟机提供的硬件相匹配的驱动(特别是硬盘的驱动),否则以后启动新系统时系统将会mount不上sdb。

  1. 设置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中的相应位置即可。

  1. 进入新系统

重启系统,会出现LFS系统的选择项,移动键盘的上下键选中它,按回车键进入,以root用户登录,输入LFS-BOOK 6.25.3. Setting the root password节设置的密码。

五. 作业的提交

  1. 注册gitee账户
  2. 获取lfs-course的仓库地址
  3. 从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.提交作业

  1. 进入openEuler创新实践课官方代码仓
  2. 选择自己学校的代码仓进入
  3. 该页面上找到Fork按钮并fork之
  4. 先在gitee页面上拷贝仓库地址
  5. 在git命令窗口clone自己fork的仓库并进入仓库目录
  6. 新增上游远程分支
git remote add upstream https://gitee.com/openeuler-practice-courses/nankai_university_2021.git
git pull upstream
  1. 创建自己仓库的开发分支
git checkout -b zhaoyan upstream/master
git branch
  1. 同步上游代码
git pull --rebase
  1. 在自己的仓库下建立文件夹
mkdir 12306-zhaoyan
  1. 将自己的作业截图放到该文件夹下
  2. 增加此图片到仓库中
git add 12306-zhaoyan
git add 12306-zhaoyan /12306-zhaoyan.png
git status
  1. 提交至本地仓库
git commit -m "Push 12306-zhaoyan’s homework"
git status
  1. Push代码到自己的远程仓库
git push origin zhaoyan
git log
  1. 到gitee网页查看自己的远程仓库
  2. 进行“Pull Requests”操作
  3. 首次需签署个人CLA
  4. 在原始远程仓检查提交情况

六. 实验总结

  1. 这次实验主要是对心态的考验,这次实验前期的一个问题是虚拟机的安装,下载的vmvare者virtualbox可能会报错,需要重装或者修改网卡连接方式。我在实验过程中发现自己所用的openEuler版本不兼容导致报错,最后解决了这个问题。
  2. 还有一个就是在对照bash文件进行粘贴的时候需要注意其中reboot命令处会被打断,为了方便复制粘贴,可以使用SSH连接。
  3. 实验过程中可能会报错,并且很难找到错误的原因,这个时候一方面需要有足够的耐心,另一方面还要有从头再来的勇气,当然,为了不要真的“从头”再来,不时地拍个快照是个不错的习惯。

在openEuler上搭建LFS相关推荐

  1. vmware view 桌面源不可用_在 openEuler 上安装桌面环境

    openEuler 是华为自主研发的,主要用于其鲲鹏服务器上的一款基于 CentOS 修改而来的 Linux 发行版. 有句名言要牢记,国外一开源,国内就自主. 本来作为已经叛逃到 macOS 的老 ...

  2. 在Ubuntu 12.04 64bit上搭建Crtmpserver视频直播服务

    本篇博客继续在上篇<在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务> http://blog.csdn.net/tao_627/article/detail ...

  3. 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 ...

  4. 在CentOS 6.2上搭建vim开发环境

    在CentOS 6.2上搭建vim开发环境 最后更新日期:2013-07-05 1.首先使用Ubuntu(所在ip为192.168.16.230)翻墙登陆http://www.vim.org/,下载其 ...

  5. ubuntu14.04上搭建android开发环境

    这几天心血来潮,想在ubuntu上写写android软件.所以就上网找些资料在ubuntu上搭建android环境.结果要么时不完整的,要么就是过时的. 所以我把我搭建android环境的过程写下了, ...

  6. 在Windows上搭建Git Server

    Git在版本控制方面,相比与SVN有更多的灵活性,对于开源的项目,我们可以托管到Github上面,非常方便,但是闭源的项目就会收取昂贵的费用. 那么私有项目,如何用Git进行代码版本控制呢?我们可以自 ...

  7. 如何在您的笔记本上搭建View 演示环境 -5.配置View Connection Server

    步骤1:登录View Manager控制台 "https://您的View Connection Server的IP/admin"来访问控制台,输入域用户名和密码. 步骤2:配置V ...

  8. 使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务

    使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务 一.基于于NAT的LVS的安装与配置. 1. 硬件需求和网络拓扑                       ...

  9. 在archlinux上搭建twitter storm cluster

    本文详细描述如何在archlinux上搭建twitter storm cluster,转载请注明出处,谢谢. 有关archlinux基本系统安装,请参照archlinux简明安装指南一文,下面以上述为 ...

  10. 在Win7的IIS上搭建FTP服务及用户授权

    FTP服务 FTP是文件传输协议(File Transfer Protocol)的简称,该协议属于应用层协议(端口号通常为21),用于Internet上的双向文件传输(即文件的上传和下载).在网络上有 ...

最新文章

  1. Java Comparator 珍藏版
  2. leetcode算法题--扑克牌中的顺子
  3. [转载].Freescale.伦德全 - 电路板级的电磁兼容设计
  4. 宇泽电影工作室网页HTML语言,4.4宇泽国际旅行社网页制作
  5. redis/分布式文件存储系统/数据库 存储session,解决负载均衡集群中session不一致问题...
  6. opcache开启和关闭
  7. linux卸载es,Ubuntu卸载elasticsearch
  8. CodeForces 1610H Squid Game(延迟贪心 + 构造 + 树状数组)
  9. JBoss Fuse 6.2发布–指导如何快速尝试
  10. [原创]django+ldap实现统一认证部分一(django-auth-ldap实践)
  11. 如何解决anaconda出现CondaHTTPError问题
  12. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre
  13. python中pip有啥用_python的pip有什么用
  14. Lua调用C的动态库
  15. 觅知blibli专业版弹幕播放器开源无加密JSON解析版-后台功能一键管理-开源版22-8-24
  16. 关于BOM表的一些事
  17. 打开 Windows 10 默认共享
  18. RGB-D相机(Azure Kinect DK)RGB图、深度图的获取,配准与保存
  19. 浅谈一下Program Files和Program Files(x86)
  20. Excel如何将一个单元格数据拆分为多行单元格

热门文章

  1. Java学习之基础知识2
  2. 领导力培训知识点汇总及感悟-1
  3. 物联网和边缘部署的5大嵌入式工控机设计要求
  4. 徐思201771010132《面向对象程序设计(java)》第七周学习总结
  5. win7开启ftp被动模式_什么是FTP功能?Win7旗舰版下如何开启FTP功能?
  6. 蚂蚁金服入职考试_我是如何拿到蚂蚁金服实习 offer 的
  7. b类 蚂蚁金服_终于拿到蚂蚁金服Offer!!!分享一下全程面试题和面试经验!...
  8. 萌新小白,求大神解答
  9. A卡核显N卡独显笔记本Deepin20环境下配置双显卡驱动和CUDA
  10. 万用表测电容方法-电子技术方案