LFS - Linux From Scratch 从零开始全记录 - 1 准备篇
上次折腾 LFS 已经是好几年前了,只记得最后用 VMware 引导成功了,好多技术细节已经不记得了。趁着最近有空,再来折腾一次。这一次用的一台新的 Win10 PC,目标是在一个 U 盘上构建 LFS,然后用 U 盘引导物理机,顺便记录一下整个过程。
准备阶段
下载虚拟机、Ubuntu 镜像
- 下载安装 Microsoft Visual C++ Redistributable 2019,VirtualBox 依赖于该组件,如果安装其他程序的时候已安装过这个包,则可跳过
- 下载安装 VirtualBox
- 下载 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 准备篇的更多相关文章
- LFS(Linux From Scratch)学习
一.简介 LFS──Linux from Scratch,就是一种从网上直接下载源码,从头编译LINUX的安装方式.它不是发行版,只是一个菜谱,告诉你到哪里去买菜(下载源码),怎么把这些生东西( ra ...
- LFS Linux From Scratch 笔记2(经验非教程)BLFS
LFS 完了. 其实还没完,还要装一些其他的组件,系统才算是对人类有用的系统. 正好这里有个BLFS Beyound Linux From Scratch 的教程. 其实,按照现有的可运行的LFS系统 ...
- cmd&Linux 下使用mysql全记录
php mysql数据库常用cmd命令集 show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop ...
- LFS Linux From Scratch 笔记(经验非教程)
做了一个自己的DIY Linux系统.从编译每一行代码,建立每一个文件系统结构开始. 创造自己的GNU/Linux系统,不同于任何发行版.按照的教程是来自 linuxfromscratch.org 来 ...
- Redis Linux 安装运行实战全记录
下载Redis 去Redis官网下载最新的Linux包,Redis官方没有Windows版的下载. https://redis.io/ 下载后把包上传到Linux服务器. 安装Redis 1.解压Re ...
- Welcome to Linux From Scratch!
/**************************************************************************** * Welcome to Linux Fro ...
- LFS(Linux From Scratch)构建过程全记录(五):交叉工具链的构建
写在前面 本文将详细讲述如何构建工具链 前置知识 在LFS-BOOK中,我们需要学习一些关于"交叉编译"的内容,详见书本 安装Binutils-2.39 我们cd到sources文 ...
- Linux From Scratch(从零开始构建Linux系统,简称LFS)- Version 7.7(三)
八. 构建LFS系统 1. 准备虚拟内核文件系统 内核会挂载几个文件系统用于自己和用户空间程序交换信息.这些文件系统是虚拟的,并不占用实际磁盘空间, 它们的内容会放在内存里. mkdir -pv $L ...
- Linux From Scratch(从零开始构建Linux系统,简称LFS)(三)
九. 系统配置 1. 安装 LFS-Bootscripts-20150222 软件包包含一套在 LFS 系统启动和关闭时的启动和停止脚本. cd /sources tar -jxf lfs-boots ...
- Linux From Scratch(从零开始构建Linux系统,简称LFS)- Version 7.7(一)
一. 准备工作 1. 需要一个Linux宿主系统,例如早先版本的 LFS,Ubuntu/Fedora,SuSE 或者是在你的架构上可以运行的其它发行版 如果想实现Win7与Linux双系统,可参考我的 ...
随机推荐
- Kbaor_2023_9_28_Java第一次实战项目_ELM_V1_食品的实体类、工具类与实现类
Kbaor_2023_9_28_Java第一次实战项目_ELM_V1_食品的实体类.工具类与实现类 ELM_V1_食品的实体类 package elm_V1; /** * [食品实体类] * * @a ...
- 【高手训练】【RMQ】奶牛排队
第一题由于过水,就没写awa 大概就是这样了.题意就是求一个最长的区间使得区间的左边是它的最小值,区间右边是他的最大值第一个想法肯定是暴力枚举啦awa但是这个是O(n^3)的,绝对的不可过awa 思考 ...
- [ABC216G] 01Sequence 题解
01Sequence 题目大意 构造一个满足 \(m\) 个形如 \((l,r,x)\) 的限制条件的 \(01\) 序列,其中 \((l,r,x)\) 表示区间 \([l,r]\) 的和不小于 \( ...
- 如何在 Ubuntu上使用snap安装Docker
1 检查系统版本 具有sudo或root用户权限 2 安装 SNAP ctrl+alt+T 打开终端 运行以下命令以安装 SNAP sudo apt update sudo apt install s ...
- Ubuntu22.04 rc-local 配置开机自启动脚本
1. rc-local服务简介Linux中的rc-local服务是一个开机自动启动的,调用开发人员或系统管理员编写的可执行脚本或命令的,它的启动顺序是在系统所有服务加载完成之后执行. ubuntu22 ...
- 虚拟机centos7上安装docker+jenkins
虚拟机centos7上安装docker+jenkins 学习某册子的CICD时,安装了docker和jenkins,记录的安装过程和中间碰到的问题. 使用的虚拟机为Parallels Desktop, ...
- Java JDBC连接数据库的CURD操作(JDK1.8 + MySQL8.0.33 + mysql-connector-java-8.0.27-bin驱动)
JDBC概述 JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统.通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类 ...
- 28. 干货系列从零用Rust编写正反向代理,项目日志的源码实现
wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现 ...
- nodejs 实现MQTT协议的服务器端和客户端的双向交互
一.项目背景 公司和第三方合作开发一个传感器项目,想要通过电脑或者手机去控制项目现场的传感器控制情况.现在的最大问题在于,现场的边缘终端设备接入的公网方式是无线接入,无法获取固定IP,所以常规的HTT ...
- Java多线程消费消息
多线程消费消息 关键词:Java,多线程,消息队列,rocketmq 多线程一个用例之一就是消息的快速消费,比如我们有一个消息队列我们希望以更快的速度消费消息,假如我们用的是rocketmq,我们从中 ...