Dracut 原生挂载 OverlayFS Root

Dracut 配置 需要手动导入模块,不可以使用hostonly模式,即配置中hostonly="no"。 /etc/dracut.conf ---------- hostonly="no" add_drivers+=" squashfs overlay " add_dracutmodules+=" dmsquash-live " 因为关闭了 hostonly 模式,所以 lvm 等配置需要手动写入内核参数。 准备镜像 镜像可以放入可挂载文件系统,或直接烧录进分区。在此介绍放入挂载文件系统情况。 镜像内部至少需要 proc,sys,dev。其中 90dmsquash-live 使用 /proc 检测是否为正确的系统格式。98dracut-systemd 使用 usable_root() 函数,该函数使用 /proc,/sys,/dev 检测是否和正确的系统格式。建议也创建 /run 文件夹。 镜像放在内核参数<rd.live.dir>/<rd.live.squashimg>。这两个参数默认值为 LiveOS 和 squashfs.img 即默认放入 LiveOS/squashfs.img 即可。 OverlayFS 持久化分区准备 该分区需要在根目录下创建内核参数 <rd.live.overlay> 目录作为 upperdir。并且在上级目录创建 ovlwork 文件夹作为 workdir。<rd.live.overlay>默认为`/<rd.live.dir>/overlay--",其中LABEL和UUID为ROOT分区的LABEL和UUID。持久化不仅可以用文件夹,也可以使用文件,在此不介绍。 内核参数 root=live:分区: 存放镜像的分区。 rd.live.overlay=分区:目录: OverlayFS 的 upperdir,目录必须由/开头。 rootfstype=ext4: root 分区的文件类型。

May 12, 2022 · 1 min · 张某

Yubikey 配置 PIV 签名  [draft]

设置模式 计划只使用 PIV 模式,可以在 yubikey manager 中关闭其他模式。 ykman config mode CCID 启动 pcscd 必须启动 pcscd 否则 yubico-piv-tool 无法发现设备 #systemd systemctl start pcscd #openRC /etc/init.d/pcscd #other /usr/sbin/pcscd & 生成ECDSA密钥 openssl ecparam -out ca.key -name secp384r1 -genkey openssl ec -in ec-secp256k1-priv-key.pem -pubout > secp256k1-pub.pem 生成 RSA 密钥 openssl genrsa -out private.pem 2048 openssl rsa -in private.pem -pubout -out public.pem 导入 yubikey 在以下例子中,将私钥导入 9a 插槽中。关于插槽介绍可以看 官方 的这篇文章。 yubico-piv-tool -s 9a -a import-key -i private....

May 6, 2022 · 1 min · 张某

Dracut 开机自动创建 Lvm 快照

Dracut-056之前版本 内核参数加入以下参数即可,其中 ORIG_LV 为快照源, SNAP_LV 为快照名.每次启动都会删除 SNAP_LV 并创建新的 SNAP_LV . rd.lvm.snapshot="ORIG_LV:SNAP_LV" Dracut-056及之后版本 在Dracut-056中删除了快照功能,需要自己创建快照脚本。

April 30, 2022 · 1 min · 张某

非特权用户使用 Xorg

问题 在 Gentoo 下 startx 启动 i3wm 时,报告 parse_vt_settings cannot open /dev/tty0 permission 解决方法 rc-update add elogind boot /etc/init.d/elogind start ##参考 Non root Xorg

April 20, 2022 · 1 min · 张某

自签名安全启动 Grub 设置

最近配置了自签名的安全启动。生成证书可以参考 ArchWiki 因为启用安全启动grub会启动验证模式,会对所有从硬盘读取的文件进行签名验证,如果要从硬盘读取模块需要给所有的模块签名。为了避免麻烦可以生成 standalone 的 efi 文件,该文件包含一个 memdisk 其包含了所有的模块。并且我们没有使用垫片,可以关闭垫片验证程序( disable-shim-lock ),所以生成命令如下。 grub-mkstandalone --directroy /usr/lib/grub/x86_64-efi --format x86_64-efi --disable-shim-lock --output grub.efi /boot/grub/grub.cfg=grub-pre.cfg 其中 /boot/grub/grub.cfg=grub-pre.cfg 代表将 grub-pre.cfg 放入 memdisk 的 /boot/grub/grub.cfg 中。grub-pre.cfq 为grub启动后执行的第一个配置,负责基础的模块调用。内容如下。其中必须要加载 tpm 模块对内核进行验证。 insmod part_gpt insmod mdraid09 insmod mdraid1x insmod ext2 insmod lvm insmod luks insmod tpm cryptomount .... set root=... configfile /grub/grub.cfg 参考 Grub 帮助论坛 Gentoo 帮助论坛

April 20, 2022 · 1 min · 张某