根据 lfs 制作了一个小巧的发行版 200M linux, 可 U 盘启动也可安装, 欢迎试用
下载地址
https://sf.net/projects/lfsp200/files/特色是小巧, live 启动模式能根据不同机器保存不同配置, 用来维护很方便的, 支持 EFI 和 BIOS 启动
可以 qemu 方式启动,参数如下:
sudo qemu -cpu host -enable-kvm -machine accel=kvm -vnc 0:0 -net nic,model=virtio -net bridge -drive file=200M,format=raw,if=virtio
可以直接用 vmware 启动
也可以通过以下 dd 写入 u 盘启动,注意不要写到硬盘里面去,不然会造成无法挽回的数据丢失
dd if=200M of=/dev/sd<X> bs=4M oflag=direct status=progress
有两个 grub 启动条目,默认第一个就可以的,第二个后面说
启动后就能通过 ssh 登录了, user: live_ pass: _live_p123
所以可以不接显示其和键盘
本地 root 无密码登陆, 建议更改一下
只有字符界面, 但我自己常用的开发软件都有了,打算有空的时候再弄个 wayland 桌面上去,初步目标是能跑 chrome
启动完成后就可以拔掉 U 盘了, 如果想把一些设置保存下来就先不要拔掉 U 盘(也可等要保存的时候插上)
建议的设置有:
更改机器名
echo "newhostname" > /etc/hostname
如果要改静态 ip 更改 /etc/systemd/network/
lan.network 如下
[Match]
Name=en*
[Network]
Address=192.168.1.2/24
Gateway=192.168.1.1
DNS=192.168.1.1
然后执行 systemctl restart systemd-networkd
新建帐户后删除默认 live_帐户
userdel live_
让 sshd 自动启动 (第一次启动会自动, 但保存设置后就不是了)
systemctl enable sshd
当然还有把 ssh 改成只允许密约登陆什么的
这些设置还都是在内存里保存着的, 下次启动就会失效, 如果要针对当前的启动的机器做持久保存要执行下面的命令
注意 U 盘拔掉的这时要插回去, 命令执行完可以再拔掉, 也就是可以在多台机器来回跑
_liveuser live_sync
这样就把当前设置就保存到 U 盘了, 下次启动会自动加载, 但在其它的机器启动则不会
如果有的设置是删除了某些文件, 执行上面的命令是不会删除 U 盘上的文件的
如果要删除 U 盘上存在但系统里已经不存在的文件执行下面的命令
_liveuser live_sync del
镜像比较小, 写入 U 盘的话会有很大的未分区空间, 可扩展已有分区
在未挂载的情况下(默认系统启动完后没有挂载 U 盘) 先用 parted 的 resizepart 命令把分区扩大
再用 resize_reiserfs 把文件系统扩大就行了
或者干脆新建分区
当然也能安装到硬盘, (注意压缩包包含的 vmware 也是相当 live 模式启动的)
安装到硬盘后就不需要 _liveuser live_sync 了, 也不会起作用了
其实也可以把 U 盘当作硬盘来用的, 这里的安装严格来说是把 live 方式启动的镜像解压出来用正常方式启动
解压根分区的文件到目标分区
unsquashfs root.squashfs -d /<目标分区挂载的路经>
把内核和 initrd 复制过去
安装 grub ,配置一个这样的启动条目就行了,目标分区 uuid 用 blkid 查看
menuentry "lfs 4.9.0" {
set kver=4.9.0
set uuid=<目标分区 uuid>
search.fs_uuid ${uuid} root
linux /boot/vmlinuz-${kver} root=uuid/${uuid} [liveuser=用户名:密码]
initrd /boot/initrd.img-${kver}.xz
}
liveuser 参数可以不用. 可在无显示器的情况下使用这个参数
该参数会在第一次启动的时候添加一个可 sudo 的用户, 并启动 sshd, 配置动态获取 IP
再重启后 ip 还会启动获取, 帐户也还存在, 但 sshd 就不会启动了, 除非 systemctl enable sshd
密码可以明文也可以用 openssl passwd -1 生成
光盘就不支持了, 就不要尝试刻盘了, 肯定启动不了的
内核选的驱动不多,主要是针对我这有的机器通用的
网卡驱动:
vmxnet3 vmware
virtio_net qemu
e1000e Intel pci-e 千兆网卡
iwl3945 无线网卡
显卡驱动, kms 自动设置分辨率:
intel 集成显卡
ati 显卡
如果有有硬件没能驱动可重新编译安装内核, 注意在 32 位系统上无法编译生成 64 位内核, live 模式下无法安装内核,需要正常启动模式才能进行下面的操作
1. 从
https://www.kernel.org/ 下载内核源码,解压并进入该目录
2. 从
https://sourceforge.net/projects/lfsp200/files/ 下载内核配置文件并重命名为 .config
3. 执行 make menuconfig 做相应的更改
4. 执行 make -j$(nproc --all) 进行编译
5. 安装内核模块 sudo XZ_OPT='-T0' make modules_install
6. 安装内核 sudo cp -v arch/x86/boot/bzImage /boot/vmlinuz-$(make -s kernelrelease)
7. 重新生成 initrd sudo /usr/sbin/mkinitramfs --force
8. 重启前可能需要编辑 /boot/grub/grub.cfg 增加修改启动条目,如内核名称未变则不需要
如果想要解压里面的文件,可进行如下操作
sudo losetup -P /dev/loop5 200M
sudo mount /dev/loop5p3 /media
所需要的文件在就在 /media 下面了
完成所需后进行如下清理
sudo umount /media
sudo losetup -d /dev/loop5
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.