上次折腾 LFS 已经是好几年前了,只记得最后用 VMware 引导成功了,好多技术细节已经不记得了。趁着最近有空,再来折腾一次。这一次用的一台新的 Win10 PC,目标是在一个 U 盘上构建 LFS,然后用 U 盘引导物理机,顺便记录一下整个过程。

准备阶段

下载虚拟机、Ubuntu 镜像

  1. 下载安装 Microsoft Visual C++ Redistributable 2019,VirtualBox 依赖于该组件,如果安装其他程序的时候已安装过这个包,则可跳过
  2. 下载安装 VirtualBox
  3. 下载 Ubuntu 22.04.2 LTS 镜像 ubuntu-22.04.2-desktop-amd64.iso 考虑到网速,我从清华镜像站下载的

虚拟机设置

按照我的个人习惯,创建两个磁盘文件

  • /dev/sda 用于系统:BIOS boot、EFI System(/boot)、RootFS(/)
  • /dev/sdb 用于主目录(/home)。万一今后系统挂掉了,我们平时保存资料的 /home 里面的东西都还在,重新搞个虚拟机,再挂载上去就可以了。当然,也可以方便地把这个 vdi 虚拟磁盘文件挂载到其他 Linux 系统

创建虚拟机、挂载上述两个 vdi 文件,挂载光盘镜像,启动,安卓 Ubuntu,按照提示一路下一步即可,安装完成后,弹出 Ubuntu 光盘镜像。

安装后的 Linux 配置

按照个人习惯的可选配置

# 安装 gcc、vim 等工具
sudo apt install vim gcc # 安装 sshd,这样就可以在 Windows Terminal 中通过 SSH 访问,不再需要 VirtualBox 的图形界面了
sudo apt install openssh-server # 把 Windows 的公钥 id_rsa.pub 拷贝到 Linux 虚拟机 ~/.ssh/authorized_keys 中,之后可以免密登录。Windows 公钥可以在 PowerShell 通过 ssh-keygen.exe 命令生成,一路回车即可,默认保存在 C:\Users\<username>\.ssh\id_rsa.pub 中
vi ~/.ssh/authorized_keys # 按照个人习惯设置提示符、命令别名等
vi ~/.bashrc
# 修改 PS1='\w '
# 增加以下别名
# alias l='ls -lh'
# alias sl='ls'
# alias mkae='make'

分区、格式化

# 分区,把 sdb 只分了一个 gpt 分区
sudo cfdisk /dev/sdb # 顺便记下 sdb1 的 Filesystem UUID: 3d7d0be8-02de-420c-9af3-ec0a6c4cca16,后面自动挂载分区要用 # 格式化为 ext4 格式
sudo mkfs -t ext4 -F /dev/sdb1

自动挂载 /dev/sdb

修改 /etc/fstab 自动挂载 /home

sudo vi /etc/fstab

增加下面一行,其中 UUID 来自上面分区的步骤

UUID=3d7d0be8-02de-420c-9af3-ec0a6c4cca16 /home ext4 errors=remount-ro 0 1

转移 /home 到 /dev/sdb

# 备份整个 ~ 目录到 /tmp,其中 -a 可以复制其中的隐藏文件、保留链接、文件属性等
cp -a /home/zijian/ /tmp
sudo rm -rf /home/* # 挂载
sudo mount /dev/sdb1 /home # 顺便提一句,卸载是 sudo umount /home,并且当前不能在 /home 目录里执行 umount 命令 # 把主目录拷贝到 /dev/sdb 中
sudo cp -a /tmp/zijian /home

新的虚拟机差不多就这样,下一篇开始按照 LFS 教程开始操作!

LFS - Linux From Scratch 从零开始全记录 - 1 准备篇的更多相关文章

  1. LFS(Linux From Scratch)学习

    一.简介 LFS──Linux from Scratch,就是一种从网上直接下载源码,从头编译LINUX的安装方式.它不是发行版,只是一个菜谱,告诉你到哪里去买菜(下载源码),怎么把这些生东西( ra ...

  2. LFS Linux From Scratch 笔记2(经验非教程)BLFS

    LFS 完了. 其实还没完,还要装一些其他的组件,系统才算是对人类有用的系统. 正好这里有个BLFS Beyound Linux From Scratch 的教程. 其实,按照现有的可运行的LFS系统 ...

  3. cmd&Linux 下使用mysql全记录

    php mysql数据库常用cmd命令集 show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop ...

  4. LFS Linux From Scratch 笔记(经验非教程)

    做了一个自己的DIY Linux系统.从编译每一行代码,建立每一个文件系统结构开始. 创造自己的GNU/Linux系统,不同于任何发行版.按照的教程是来自 linuxfromscratch.org 来 ...

  5. Redis Linux 安装运行实战全记录

    下载Redis 去Redis官网下载最新的Linux包,Redis官方没有Windows版的下载. https://redis.io/ 下载后把包上传到Linux服务器. 安装Redis 1.解压Re ...

  6. Welcome to Linux From Scratch!

    /**************************************************************************** * Welcome to Linux Fro ...

  7. LFS(Linux From Scratch)构建过程全记录(五):交叉工具链的构建

    写在前面 本文将详细讲述如何构建工具链 前置知识 在LFS-BOOK中,我们需要学习一些关于"交叉编译"的内容,详见书本 安装Binutils-2.39 我们cd到sources文 ...

  8. Linux From Scratch(从零开始构建Linux系统,简称LFS)- Version 7.7(三)

    八. 构建LFS系统 1. 准备虚拟内核文件系统 内核会挂载几个文件系统用于自己和用户空间程序交换信息.这些文件系统是虚拟的,并不占用实际磁盘空间, 它们的内容会放在内存里. mkdir -pv $L ...

  9. Linux From Scratch(从零开始构建Linux系统,简称LFS)(三)

    九. 系统配置 1. 安装 LFS-Bootscripts-20150222 软件包包含一套在 LFS 系统启动和关闭时的启动和停止脚本. cd /sources tar -jxf lfs-boots ...

  10. Linux From Scratch(从零开始构建Linux系统,简称LFS)- Version 7.7(一)

    一. 准备工作 1. 需要一个Linux宿主系统,例如早先版本的 LFS,Ubuntu/Fedora,SuSE 或者是在你的架构上可以运行的其它发行版 如果想实现Win7与Linux双系统,可参考我的 ...

随机推荐

  1. 12 款最棒 Vue 开源 UI 库

    文章目录 Element Plus - 经典中的经典,全面支持 Vue 3 TDesign Vue - 鹅厂优质 UI 组件,配套工具完满,设计工整,文档清晰 ArcoDesign Vue- 字节优质 ...

  2. replace批量替换、表删除数据查询用法

    一. select * from baec_file where bacti='1'order by baec01; select baec02,REPLACE(baec02,'白班','A班') f ...

  3. CPU占用99%

    晚间迁移数据库后,第二天下午来调优,发现CPU占用达到惊人的99%,如下: 分析15:00-16:00期间AWR报告,发现SQL硬解析严重,如下: 每秒硬解析达到69.9次,library hit%太 ...

  4. CF451B

    题目简化和分析: 这题就是判断将一段翻转后是否能变为升序的数组. 我的方法是保存原数组每一个数出现的位置(相同任意一个),让后另外用一个数组存储排好序后的原数组,逐一进行比较. 若同,则跳到下一个元素 ...

  5. 深入理解 Python 虚拟机:协程初探——不过是生成器而已

    深入理解 Python 虚拟机:协程初探--不过是生成器而已 在 Python 3.4 Python 引入了一个非常有用的特性--协程,在后续的 Python 版本当中不断的进行优化和改进,引入了新的 ...

  6. JVM 学习

    目录 1. 类加载器及类加载过程 1.1 基本流程 1.2 类加载器子系统作用 1.3 类加载器角色 1.4 加载过程 (1) 加载 loading (2) 链接 linking 验证 verify ...

  7. mysql查看索引利用率

    -- mysql查看索引利用率 -- 如果很慢把排序去掉,加上limit 并且在where条件中限定表名. -- cardinality越接近0,利用率越低 SELECT t.TABLE_SCHEMA ...

  8. OpenGL 基础光照详解

    1. 光照 显示世界中,光照环境往往是相对复杂的.因为假设太阳作为世界的唯一光源,那么太阳光照在物体A上A将阳光进行反射后,A又做为一个新的光源共同作用于另一个物体B.所以于B来讲光源是复杂的.然而这 ...

  9. 关于Delphi

    # 关于Delphi ··Delphi中使用的面向对象pascal编程语言. ··Pascal语言最初由瑞士苏黎士理工学院的尼古拉斯-沃斯(Niklaus Wirth)教授在1971年设计. ··19 ...

  10. [AI]生物本能vs机器人工程:谁才有“意识”?

    [AI]生物本能vs机器人工程:谁才有"意识"? 引子 我们已经就人类意识的初级形式和高级形式进行了初步探讨.通过对比分析,我们将初级意识定义为可以无需高级意识参与的本能反应.而高 ...