添加initramfs脚本,让云固件能启动linux

先安装qemu-utils

sudo -i
apt update
apt install qemu-utils

转到/etc/initramfs-tools目录

cd /etc/initramfs-tools

将mwtools工具挂载到任何一个方便的位置,我这里是挂载到了我的主目录下面,mwtools目录自己mkdir

mount /dev/sdb1 /home/kob/mwtools

将几个文件拷贝过来

cp /home/kob/mwtools/mwtools/distros/initramfs-tools/initramfs.conf .
cp /home/kob/mwtools/mwtools/distros/initramfs-tools/modules .
chmod +x modules
cd hooks
cp /home/kob/mwtools/mwtools/distros/initramfs-tools/hooks/mwnbd .
chmod +x mwnbd
cd ..
cd scripts/local-top
cp /home/kob/mwtools/mwtools/distros/initramfs-tools/scripts/local-top/mwnbd .
chmod +x mwnbd
cd ..
cd local-bottom
cp /home/kob/mwtools/mwtools/distros/initramfs-tools/scripts/local-bottom/mwnbd .
chmod +x mwnbd

debian要在modules文件最后一排加上efivarfs

最后再更新一下

sudo update-initramfs -u -k all

可以做一个脚本自动运行.sh

#!/bin/bash
 
# 检查是否具有root权限
if [ "$EUID" -ne 0 ]; then
    echo "请使用sudo或root权限运行此脚本"
    exit 1
fi
 
 
apt install qemu-utils -y
cp initramfs.conf /etc/initramfs-tools/
cp modules /etc/initramfs-tools/
cp update-initramfs.conf /etc/initramfs-tools/
cp ./hooks/mwnbd /etc/initramfs-tools/hooks/
cp ./scripts/local-top/mwnbd /etc/initramfs-tools/scripts/local-top/
cp ./scripts/local-bottom/mwnbd /etc/initramfs-tools/scripts/local-bottom/
chmod +x /etc/initramfs-tools/modules
chmod +x /etc/initramfs-tools/hooks/mwnbd
chmod +x /etc/initramfs-tools/scripts/local-bottom/mwnbd
chmod +x /etc/initramfs-tools/scripts/local-top/mwnbd
 
 
# 检测系统发行版
if [ -f /etc/os-release ]; then
    . /etc/os-release
    case "$ID" in
        debian)
            echo "检测到Debian系统"
            # 安全追加模块到文件
            grep -qxF 'efivarfs' /etc/initramfs-tools/modules || echo 'efivarfs' >> /etc/initramfs-tools/modules
            # 更新initramfs
            ;;
        ubuntu)
            echo "检测到Ubuntu系统"
            ;;
        *)
            echo "错误:不支持的Linux发行版 - $ID"
            exit 1
            ;;
    esac
else
    echo "错误:无法检测系统信息"
    exit 1
fi
# 生成指定initramfs镜像
update-initramfs -u -k all
echo "操作已完成"

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部