构建自己的 LINUX 系统(一)
来源:互联网 发布:linux查看当前用户名 编辑:程序博客网 时间:2024/04/20 15:01
实验目标:基于 Tiny Core 构建一款迷你的 Linux 发行版系统。
技能要点:
- 解构、重构 Linux 文件系统
- 解析、构建 Tiny Core 的文件系统和软件包
- 制作支持U盘引导的ISO镜像
- 使用虚拟机 QEMU 测试系统
- SYSLinux 构建启动引导
- Makefile 编写
准备工具:一个 Linux 开发环境(如:Ubuntu、Debian ……)、Makefile 在内的常用开发工具、虚拟机(QEMU 或 VirtualBox 都可以)、syslinux-utils(Debian、Ubuntu 可用 APT 工具安装)、Python(可选)、Gimp之类的绘图工具(可选)。
PS:如果你是用的是主流 Linux 发行系统,那么很多工具你都已经有了。
准备工作空间和“原材料(这里用 TinyCore)”
mkdir mylinux/{template,boot,cde,extends,tools,release} -pcd mylinux# 下载 TinyCore Linux 作为定制的模板wget http://tinycorelinux.net/7.x/x86/release/TinyCore-7.2.iso -O template/tinycore.iso
复制必要文件到指定目录
# 挂载 tinycoremkdir tmpsudo mount -o loop template/tinycore.iso tmp/# 拷贝重要的文件cp tmp/boot/* boot/ -afcp tmp/cde/* cde/ -af# 取消挂载sudo umount tmp/# 递归查看项目目录ls -R
编写 Makefile,重新构建 TinyCore
touch Makefile
QEMU:=qemu-system-i386out.iso: boot/ cde/ mkdir build/ cp boot/ build/ -af cp cde/ build/ -af mkisofs -D -r -V "mylinux v0.01" -cache-inodes -J -l \ -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table -o out.iso build/ isohybrid out.iso cp -fv out.iso release/mylinux.isorun: out.iso ${QEMU} -cdrom out.iso -boot d -m 256clean: rm -rf out.iso build/
PS: 其中 QEMU
是 qemu-system-i386
的别名;mkisofs
是用来创建 iso 镜像的,-V
用来指定版本名,具体细节可以参考文档;isohybrid
用来产生一个可以制作 U 盘启动盘的 iso 镜像。
重构 TinyCore
安装工具(Debian 系列)
sudo apt-get install syslinux-utilssudo apt-get install qemu
开始构建,并运行
sudo makemake run
清理
sudo make clean
1 0
- 构建自己的 LINUX 系统(一)
- 构建自己的Linux系统记录(一)
- 构建自己的Linux系统反思(一)
- 构建自己的 LINUX 系统(二)
- 构建自己的 LINUX 系统(三)
- 构建自己的 LINUX 系统(四)
- 构建自己的Linux系统记录(二)
- 构建自己的Linux系统记录(三)
- 构建自己的Linux系统记录(四)
- 构建自己的Linux系统记录(五)
- 构建自己的Linux系统反思(二)
- 从头构建自己的Linux系统 -转
- 从头构建自己的Linux系统
- 为Cubieboard2构建自己的的Debian Linux的步骤(3)(分色排版)下载并配置debian系统
- ArcGIS Server for javascript构建自己的GraphicsLayer(一)
- 构建自己的AngularJS - 作用域和Digest(一)
- 构建自己的Java Web框架(一)之前言
- ARM Linux 系统 (OK6410-A)开发环境构建 (一)
- mysql乐观锁总结和实践
- php mysql PDO封装
- springMVC框架开发笔记 lesson2 注解开发
- IO技术(三)字符流和字符缓冲区
- 对象的序列化
- 构建自己的 LINUX 系统(一)
- noip2007 树网的核
- iOS代码规范整理(欢迎补充修改)
- 设计模式学习笔记之命令模式
- 文件加密移动与解密(winform版
- iOS开发笔记
- IO技术(四)转换流
- mysql 设置初始密码
- css-样式优先级算法