ubuntu-18.04.1-desktop-amd64.iso initrd 基本文件系统中启动脚本分析 (1)

本文详细解析了 Ubuntu 18.04 的启动流程,包括解压 ISO 文件、查看引导配置、解压 initrd 文件及初始化脚本运行过程。关键步骤涉及读取 /proc/cmdline 参数、设置系统目录、加载模块和挂载根文件系统。

1.  解压 ubuntu-18.04.1-desktop-amd64.iso

2. 查看 boot/grub/grub.cfg,知道引导文件系统是 /casper/initrd.lz

menuentry "Try Ubuntu without installing" {
    set gfxpayload=keep
    linux    /casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash ---
    initrd    /casper/initrd.lz
}

3. 解压 /casper/initrd.lz 到initrd目录,结构如下

4. 首先查看 init脚本文件,kernel将在启动后首先默认执行它,除非启动参数另外指定。

4.1 建立基本系统设备目录以支持应用程序运行,其中提前从启动参数提取quiet全局变量是因为它可能会被udev脚本引用。

export PATH=/sbin:/usr/sbin:/bin:/usr/bin

[ -d /dev ] || mkdir -m 0755 /dev
[ -d /root ] || mkdir -m 0700 /root
[ -d /sys ] || mkdir /sys
[ -d /proc ] || mkdir /proc
[ -d /tmp ] || mkdir /tmp
mkdir -p /var/lock
mount -t sysfs -o nodev,noexec,nosuid sysfs /sys
mount -t proc -o nodev,noexec,nosuid proc /proc

case " $(cat /proc/cmdline) " in
*\ quiet\ *)
    quiet=y
    ;;
*)
    quiet=n
    echo "Loading, please wait..."
    ;;
esac
export quiet

# Note that this only becomes /dev on the real filesystem if udev's scripts
# are used; which they will be, but it's worth pointing out
mount -t devtmpfs -o nosuid,mode=0755 udev /dev
mkdir /dev/pts
mount -t devpts -o noexec,nosuid,gid=5,mode=0620 devpts /dev/pts || true
mount -t tmpfs -o "noexec,nosuid,size=10%,mode=0755" tmpfs /run
mkdir -m 0755 /run/initramfs

导出全局变量 DPKG_ARCH

# Export the dpkg architecture
export DPKG_ARCH=. /conf/arch.conf

/conf/arch.conf内容很简单

DPKG_ARCH=amd64

 导出有关变量,之后会在解析启动参数时对设定项进行赋值,init脚本运行结束时,这些变量大都会被用unset命令释放掉,避免增加无谓的系统负担,这一点值得学习。

# Export relevant variables
export ROOT=
export ROOTDELAY=
export ROOTFLAGS=
export ROOTFSTYPE=
export IP=
export IP6=
export BOOT=
export BOOTIF=
export UBIMTD=
export break=
export init=/sbin/init
export readonly=y
export rootmnt=/root
export debug=
export panic=
export blacklist=
export resume=
export resume_offset=
export drop_caps=
export fastboot=n
export forcefsck=n
export fsckfix=
export recovery=

设置hostname,要定制的话修改 etc/hostname的值,默认似乎没有这个文件。

# mdadm needs hostname to be set. This has to be done before the udev rules are called!
if [ -f "/etc/hostname" ]; then
        /bin/hostname -F /etc/hostname >/dev/null 2>&1
fi

导出各种需要的外部变量(*.conf)和函数定义(/scripts/functions)。后面用的比较多的是maybe_break() 和run_scripts()

# Bring in the main config
. /conf/initramfs.conf
for conf in conf/conf.d/*; do
    [ -f ${conf} ] && . ${conf}
done
. /scripts/functions

之后是解析启动参数 /proc/cmdline,比较常用的有init=,root=,boot=

    init=*)
        init=${x#init=}
        ;;
    root=*)
        ROOT=${x#root=}
        if [ -z "${BOOT}" ] && [ "$ROOT" = "/dev/nfs" ]; then
            BOOT=nfs
        fi
        ;;

    boot=*)
        BOOT=${x#boot=}
        ;;

如果没有指定boot,将会设置默认值local,为什么不在之前定义时直接设置呢?恐怕是担心送的参数就是空的情况(boot= )

# Default to BOOT=local if no boot script defined.
if [ -z "${BOOT}" ]; then
    BOOT=local
fi

之后是系统恢复变量的设置,暂时没有关注,童鞋自己分析吧。

if [ -n "${noresume}" ] || [ "$RESUME" = none ]; then
    export noresume=y
    unset resume
else
    resume=${RESUME:-}
fi

 之后是很重要的初始化脚本调用过程,将在“ubuntu-18.04.1-desktop-amd64.iso initrd 基本文件系统中启动脚本分析 (2)”中详述。以下是简略的初始化脚本或函数调用过程

/scripts/init-top
load_modules
/scripts/init-premount
. /scripts/local
. /scripts/nfs
. /scripts/${BOOT}
parse_numeric ${ROOT}
mount_top
mount_premount
mountroot
mount_bottom
nfs_bottom
local_bottom
/scripts/init-bottom

正在选中未选择的软件包 cuda-cccl-12-1。 准备解压 .../058-cuda-cccl-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-cccl-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-driver-dev-12-1。 准备解压 .../059-cuda-driver-dev-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-driver-dev-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-cudart-dev-12-1。 准备解压 .../060-cuda-cudart-dev-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-cudart-dev-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-nvcc-12-1。 准备解压 .../061-cuda-nvcc-12-1_12.1.66-1_amd64.deb ... 正在解压 cuda-nvcc-12-1 (12.1.66-1) ... 正在选中未选择的软件包 cuda-nvprune-12-1。 准备解压 .../062-cuda-nvprune-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-nvprune-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-compiler-12-1。 准备解压 .../063-cuda-compiler-12-1_12.1.0-1_amd64.deb ... 正在解压 cuda-compiler-12-1 (12.1.0-1) ... 正在选中未选择的软件包 cuda-profiler-api-12-1。 准备解压 .../064-cuda-profiler-api-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-profiler-api-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-nvrtc-dev-12-1。 准备解压 .../065-cuda-nvrtc-dev-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-nvrtc-dev-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-opencl-dev-12-1。 准备解压 .../066-cuda-opencl-dev-12-1_12.1.56-1_amd64.deb ... 正在解压 cuda-opencl-dev-12-1 (12.1.56-1) ... 正在选中未选择的软件包 libcublas-dev-12-1。 准备解压 .../067-libcublas-dev-12-1_12.1.0.26-1_amd64.deb ... 正在解压 libcublas-dev-12-1 (12.1.0.26-1) ... 正在选中未选择的软件包 libcufft-dev-12-1。 准备解压 .../068-libcufft-dev-12-1_11.0.2.4-1_amd64.deb ... 正在解压 libcufft-dev-12-1 (11.0.2.4-1) ... 正在选中未选择的软件包 libcufile-dev-12-1。 准备解压 .../069-libcufile-dev-12-1_1.6.0.25-1_amd64.deb ... 正在解压 libcufile-dev-12-1 (1.6.0.25-1) ... 正在选中未选择的软件包 libcurand-dev-12-1。 准备解压 .../070-libcurand-dev-12-1_10.3.2.56-1_amd64.deb ... 正在解压 libcurand-dev-12-1 (10.3.2.56-1) ... 正在选中未选择的软件包 libcusolver-dev-12-1。 准备解压 .../071-libcusolver-dev-12-1_11.4.4.55-1_amd64.deb ... 正在解压 libcusolver-dev-12-1 (11.4.4.55-1) ... 正在选中未选择的软件包 libcusparse-dev-12-1。 准备解压 .../072-libcusparse-dev-12-1_12.0.2.55-1_amd64.deb ... 正在解压 libcusparse-dev-12-1 (12.0.2.55-1) ... 正在选中未选择的软件包 libnpp-dev-12-1。 准备解压 .../073-libnpp-dev-12-1_12.0.2.50-1_amd64.deb ... 正在解压 libnpp-dev-12-1 (12.0.2.50-1) ... 正在选中未选择的软件包 libnvjitlink-dev-12-1。 准备解压 .../074-libnvjitlink-dev-12-1_12.1.55-1_amd64.deb ... 正在解压 libnvjitlink-dev-12-1 (12.1.55-1) ... 正在选中未选择的软件包 libnvjpeg-dev-12-1。 准备解压 .../075-libnvjpeg-dev-12-1_12.1.0.39-1_amd64.deb ... 正在解压 libnvjpeg-dev-12-1 (12.1.0.39-1) ... 正在选中未选择的软件包 cuda-libraries-dev-12-1。 准备解压 .../076-cuda-libraries-dev-12-1_12.1.0-1_amd64.deb ... 正在解压 cuda-libraries-dev-12-1 (12.1.0-1) ... 正在选中未选择的软件包 cuda-cupti-12-1。 准备解压 .../077-cuda-cupti-12-1_12.1.62-1_amd64.deb ... 正在解压 cuda-cupti-12-1 (12.1.62-1) ... 正在选中未选择的软件包 cuda-cupti-dev-12-1。 准备解压 .../078-cuda-cupti-dev-12-1_12.1.62-1_amd64.deb ... 正在解压 cuda-cupti-dev-12-1 (12.1.62-1) ... 正在选中未选择的软件包 cuda-nvdisasm-12-1。 准备解压 .../079-cuda-nvdisasm-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-nvdisasm-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-gdb-12-1。 准备解压 .../080-cuda-gdb-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-gdb-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-nvprof-12-1。 准备解压 .../081-cuda-nvprof-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-nvprof-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-nvtx-12-1。 准备解压 .../082-cuda-nvtx-12-1_12.1.66-1_amd64.deb ... 正在解压 cuda-nvtx-12-1 (12.1.66-1) ... 正在选中未选择的软件包 cuda-sanitizer-12-1。 准备解压 .../083-cuda-sanitizer-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-sanitizer-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-command-line-tools-12-1。 准备解压 .../084-cuda-command-line-tools-12-1_12.1.0-1_amd64.deb ... 正在解压 cuda-command-line-tools-12-1 (12.1.0-1) ... 正在选中未选择的软件包 nsight-compute-2023.1.0。 准备解压 .../085-nsight-compute-2023.1.0_2023.1.0.15-1_amd64.deb ... 正在解压 nsight-compute-2023.1.0 (2023.1.0.15-1) ... 正在选中未选择的软件包 cuda-nsight-compute-12-1。 准备解压 .../086-cuda-nsight-compute-12-1_12.1.0-1_amd64.deb ... 正在解压 cuda-nsight-compute-12-1 (12.1.0-1) ... 正在选中未选择的软件包 libtinfo5:amd64。 准备解压 .../087-libtinfo5_6.3-2ubuntu0.1_amd64.deb ... 正在解压 libtinfo5:amd64 (6.3-2ubuntu0.1) ... 正在选中未选择的软件包 nsight-systems-2023.1.2。 准备解压 .../088-nsight-systems-2023.1.2_2023.1.2.43-1_amd64.deb ... 正在解压 nsight-systems-2023.1.2 (2023.1.2.43-32377213v0) ... 正在选中未选择的软件包 cuda-nsight-systems-12-1。 准备解压 .../089-cuda-nsight-systems-12-1_12.1.0-1_amd64.deb ... 正在解压 cuda-nsight-systems-12-1 (12.1.0-1) ... 正在选中未选择的软件包 cuda-nsight-12-1。 准备解压 .../090-cuda-nsight-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-nsight-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-nvml-dev-12-1。 准备解压 .../091-cuda-nvml-dev-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-nvml-dev-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-nvvp-12-1。 准备解压 .../092-cuda-nvvp-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-nvvp-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-visual-tools-12-1。 准备解压 .../093-cuda-visual-tools-12-1_12.1.0-1_amd64.deb ... 正在解压 cuda-visual-tools-12-1 (12.1.0-1) ... 正在选中未选择的软件包 gds-tools-12-1。 准备解压 .../094-gds-tools-12-1_1.6.0.25-1_amd64.deb ... 正在解压 gds-tools-12-1 (1.6.0.25-1) ... 正在选中未选择的软件包 cuda-tools-12-1。 准备解压 .../095-cuda-tools-12-1_12.1.0-1_amd64.deb ... 正在解压 cuda-tools-12-1 (12.1.0-1) ... 正在选中未选择的软件包 cuda-documentation-12-1。 准备解压 .../096-cuda-documentation-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-documentation-12-1 (12.1.55-1) ... 正在选中未选择的软件包 libnvvm-samples-12-1。 准备解压 .../097-libnvvm-samples-12-1_12.1.55-1_amd64.deb ... 正在解压 libnvvm-samples-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-toolkit-12-1。 准备解压 .../098-cuda-toolkit-12-1_12.1.0-1_amd64.deb ... 正在解压 cuda-toolkit-12-1 (12.1.0-1) ... 正在选中未选择的软件包 cuda-demo-suite-12-1。 准备解压 .../099-cuda-demo-suite-12-1_12.1.55-1_amd64.deb ... 正在解压 cuda-demo-suite-12-1 (12.1.55-1) ... 正在选中未选择的软件包 cuda-12-1。 准备解压 .../100-cuda-12-1_12.1.0-1_amd64.deb ... 正在解压 cuda-12-1 (12.1.0-1) ... 正在选中未选择的软件包 cuda。 准备解压 .../101-cuda_12.1.0-1_amd64.deb ... 正在解压 cuda (12.1.0-1) ... 正在选中未选择的软件包 libatomic1:i386。 准备解压 .../102-libatomic1_12.3.0-1ubuntu1~22.04.2_i386.deb ... 正在解压 libatomic1:i386 (12.3.0-1ubuntu1~22.04.2) ... 正在选中未选择的软件包 libdrm-amdgpu1:i386。 准备解压 .../103-libdrm-amdgpu1_2.4.113-2~ubuntu0.22.04.1_i386.deb ... 正在解压 libdrm-amdgpu1:i386 (2.4.113-2~ubuntu0.22.04.1) ... 正在选中未选择的软件包 libpciaccess0:i386。 准备解压 .../104-libpciaccess0_0.16-3_i386.deb ... 正在解压 libpciaccess0:i386 (0.16-3) ... 正在选中未选择的软件包 libdrm-intel1:i386。 准备解压 .../105-libdrm-intel1_2.4.113-2~ubuntu0.22.04.1_i386.deb ... 正在解压 libdrm-intel1:i386 (2.4.113-2~ubuntu0.22.04.1) ... 正在选中未选择的软件包 libdrm-nouveau2:i386。 准备解压 .../106-libdrm-nouveau2_2.4.113-2~ubuntu0.22.04.1_i386.deb ... 正在解压 libdrm-nouveau2:i386 (2.4.113-2~ubuntu0.22.04.1) ... 正在选中未选择的软件包 libdrm-radeon1:i386。 准备解压 .../107-libdrm-radeon1_2.4.113-2~ubuntu0.22.04.1_i386.deb ... 正在解压 libdrm-radeon1:i386 (2.4.113-2~ubuntu0.22.04.1) ... 正在选中未选择的软件包 libglapi-mesa:i386。 准备解压 .../108-libglapi-mesa_23.2.1-1ubuntu3.1~22.04.3_i386.deb ... 正在解压 libglapi-mesa:i386 (23.2.1-1ubuntu3.1~22.04.3) ... 正在选中未选择的软件包 libxcb-dri2-0:i386。 准备解压 .../109-libxcb-dri2-0_1.14-3ubuntu3_i386.deb ... 正在解压 libxcb-dri2-0:i386 (1.14-3ubuntu3) ... 正在选中未选择的软件包 libxcb-sync1:i386。 准备解压 .../110-libxcb-sync1_1.14-3ubuntu3_i386.deb ... 正在解压 libxcb-sync1:i386 (1.14-3ubuntu3) ... 正在选中未选择的软件包 libxcb-xfixes0:i386。 准备解压 .../111-libxcb-xfixes0_1.14-3ubuntu3_i386.deb ... 正在解压 libxcb-xfixes0:i386 (1.14-3ubuntu3) ... 正在选中未选择的软件包 libxshmfence1:i386。 准备解压 .../112-libxshmfence1_1.3-1build4_i386.deb ... 正在解压 libxshmfence1:i386 (1.3-1build4) ... 正在选中未选择的软件包 libegl-mesa0:i386。 准备解压 .../113-libegl-mesa0_23.2.1-1ubuntu3.1~22.04.3_i386.deb ... 正在解压 libegl-mesa0:i386 (23.2.1-1ubuntu3.1~22.04.3) ... 正在选中未选择的软件包 libllvm15:i386。 准备解压 .../114-libllvm15_1%3a15.0.7-0ubuntu0.22.04.3_i386.deb ... 正在解压 libllvm15:i386 (1:15.0.7-0ubuntu0.22.04.3) ... 正在选中未选择的软件包 libsensors5:i386。 准备解压 .../115-libsensors5_1%3a3.6.0-7ubuntu1_i386.deb ... 正在解压 libsensors5:i386 (1:3.6.0-7ubuntu1) ... 正在选中未选择的软件包 libgl1-mesa-dri:i386。 准备解压 .../116-libgl1-mesa-dri_23.2.1-1ubuntu3.1~22.04.3_i386.deb ... 正在解压 libgl1-mesa-dri:i386 (23.2.1-1ubuntu3.1~22.04.3) ... 正在选中未选择的软件包 libxcb-glx0:i386。 准备解压 .../117-libxcb-glx0_1.14-3ubuntu3_i386.deb ... 正在解压 libxcb-glx0:i386 (1.14-3ubuntu3) ... 正在选中未选择的软件包 libxcb-shm0:i386。 准备解压 .../118-libxcb-shm0_1.14-3ubuntu3_i386.deb ... 正在解压 libxcb-shm0:i386 (1.14-3ubuntu3) ... 正在选中未选择的软件包 libxfixes3:i386。 准备解压 .../119-libxfixes3_1%3a6.0.0-1_i386.deb ... 正在解压 libxfixes3:i386 (1:6.0.0-1) ... 正在选中未选择的软件包 libxxf86vm1:i386。 准备解压 .../120-libxxf86vm1_1%3a1.1.4-1build3_i386.deb ... 正在解压 libxxf86vm1:i386 (1:1.1.4-1build3) ... 正在选中未选择的软件包 libglx-mesa0:i386。 准备解压 .../121-libglx-mesa0_23.2.1-1ubuntu3.1~22.04.3_i386.deb ... 正在解压 libglx-mesa0:i386 (23.2.1-1ubuntu3.1~22.04.3) ... 正在选中未选择的软件包 libnvidia-compute-530:i386。 准备解压 .../122-libnvidia-compute-530_530.30.02-0ubuntu1_i386.deb ... 正在解压 libnvidia-compute-530:i386 (530.30.02-0ubuntu1) ... 正在选中未选择的软件包 libnvidia-decode-530:i386。 准备解压 .../123-libnvidia-decode-530_530.30.02-0ubuntu1_i386.deb ... 正在解压 libnvidia-decode-530:i386 (530.30.02-0ubuntu1) ... 正在选中未选择的软件包 libnvidia-encode-530:i386。 准备解压 .../124-libnvidia-encode-530_530.30.02-0ubuntu1_i386.deb ... 正在解压 libnvidia-encode-530:i386 (530.30.02-0ubuntu1) ... 正在选中未选择的软件包 libglvnd0:i386。 准备解压 .../125-libglvnd0_1.4.0-1_i386.deb ... 正在解压 libglvnd0:i386 (1.4.0-1) ... 正在选中未选择的软件包 libglx0:i386。 准备解压 .../126-libglx0_1.4.0-1_i386.deb ... 正在解压 libglx0:i386 (1.4.0-1) ... 正在选中未选择的软件包 libgl1:i386。 准备解压 .../127-libgl1_1.4.0-1_i386.deb ... 正在解压 libgl1:i386 (1.4.0-1) ... 正在选中未选择的软件包 libnvidia-fbc1-530:i386。 准备解压 .../128-libnvidia-fbc1-530_530.30.02-0ubuntu1_i386.deb ... 正在解压 libnvidia-fbc1-530:i386 (530.30.02-0ubuntu1) ... 正在选中未选择的软件包 libegl1:i386。 准备解压 .../129-libegl1_1.4.0-1_i386.deb ... 正在解压 libegl1:i386 (1.4.0-1) ... 正在选中未选择的软件包 libopengl0:i386。 准备解压 .../130-libopengl0_1.4.0-1_i386.deb ... 正在解压 libopengl0:i386 (1.4.0-1) ... 正在选中未选择的软件包 libgles2:i386。 准备解压 .../131-libgles2_1.4.0-1_i386.deb ... 正在解压 libgles2:i386 (1.4.0-1) ... 正在选中未选择的软件包 libnvidia-gl-530:i386。 准备解压 .../132-libnvidia-gl-530_530.30.02-0ubuntu1_i386.deb ... dpkg-query: 没有找到与 libnvidia-gl-450 相匹配的软件包 正在解压 libnvidia-gl-530:i386 (530.30.02-0ubuntu1) ... 正在设置 cuda-toolkit-config-common (12.1.55-1) ... 正在设置 libzstd1:i386 (1.4.8+dfsg-3build1) ... 正在设置 cuda-documentation-12-1 (12.1.55-1) ... 正在设置 cuda-nvdisasm-12-1 (12.1.55-1) ... 正在设置 cuda-driver-dev-12-1 (12.1.55-1) ... 正在设置 nsight-compute-2023.1.0 (2023.1.0.15-1) ... 正在设置 cpp-12 (12.3.0-1ubuntu1~22.04.2) ... 正在设置 libdrm-nouveau2:i386 (2.4.113-2~ubuntu0.22.04.1) ... 正在设置 cuda-nvvp-12-1 (12.1.55-1) ... 正在设置 nvidia-kernel-source-530 (530.30.02-0ubuntu1) ... 正在设置 libxcb-xfixes0:i386 (1.14-3ubuntu3) ... 正在设置 libnvidia-fbc1-530:amd64 (530.30.02-0ubuntu1) ... 正在设置 liblzma5:i386 (5.2.5-2ubuntu1) ... 正在设置 libdebuginfod-common (0.186-1ubuntu0.1) ... 正在设置 nvidia-kernel-common-530 (530.30.02-0ubuntu1) ... update-initramfs: deferring update (trigger activated) 正在设置 cuda-profiler-api-12-1 (12.1.55-1) ... 正在设置 cuda-nsight-compute-12-1 (12.1.0-1) ... 正在设置 libdrm-radeon1:i386 (2.4.113-2~ubuntu0.22.04.1) ... 正在设置 libglvnd0:i386 (1.4.0-1) ... 正在设置 libxcb-glx0:i386 (1.14-3ubuntu3) ... 正在设置 cuda-cuxxfilt-12-1 (12.1.55-1) ... 正在设置 zlib1g:i386 (1:1.2.11.dfsg-2ubuntu9.2) ... 正在设置 cuda-cccl-12-1 (12.1.55-1) ... 正在设置 libxcb-shm0:i386 (1.14-3ubuntu3) ... 正在设置 cuda-nvtx-12-1 (12.1.66-1) ... 正在设置 cuda-nsight-12-1 (12.1.55-1) ... 正在设置 libopengl0:i386 (1.4.0-1) ... 正在设置 libnvvm-samples-12-1 (12.1.55-1) ... 正在设置 libxxf86vm1:i386 (1:1.1.4-1build3) ... 正在设置 nvidia-modprobe (530.30.02-0ubuntu1) ... 正在设置 cuda-nvprof-12-1 (12.1.55-1) ... 正在设置 libnvidia-extra-530:amd64 (530.30.02-0ubuntu1) ... 正在设置 libnvidia-compute-530:amd64 (530.30.02-0ubuntu1) ... 正在设置 libnvidia-compute-530:i386 (530.30.02-0ubuntu1) ... 正在设置 libgles2:i386 (1.4.0-1) ... 正在设置 gds-tools-12-1 (1.6.0.25-1) ... 正在设置 cuda-toolkit-12-1-config-common (12.1.55-1) ... Setting alternatives update-alternatives: 使用 /usr/local/cuda-12.1 来在自动模式中提供 /usr/local/cuda (cuda) update-alternatives: 使用 /usr/local/cuda-12.1 来在自动模式中提供 /usr/local/cuda-12 (cuda-12) 正在设置 libxfixes3:i386 (1:6.0.0-1) ... 正在设置 libxcb-sync1:i386 (1.14-3ubuntu3) ... 正在设置 cuda-cuobjdump-12-1 (12.1.55-1) ... 正在设置 cuda-nvrtc-12-1 (12.1.55-1) ... 正在设置 cuda-sanitizer-12-1 (12.1.55-1) ... 正在设置 libatomic1:i386 (12.3.0-1ubuntu1~22.04.2) ... 正在设置 libsensors5:i386 (1:3.6.0-7ubuntu1) ... 正在设置 libglapi-mesa:i386 (23.2.1-1ubuntu3.1~22.04.3) ... 正在设置 cuda-cupti-12-1 (12.1.62-1) ... 正在设置 libnvidia-decode-530:amd64 (530.30.02-0ubuntu1) ... 正在设置 libnvidia-decode-530:i386 (530.30.02-0ubuntu1) ... 正在设置 libxcb-dri2-0:i386 (1.14-3ubuntu3) ... 正在设置 cuda-nvml-dev-12-1 (12.1.55-1) ... 正在设置 libnvidia-common-530 (530.30.02-0ubuntu1) ... 正在设置 libxshmfence1:i386 (1.3-1build4) ... 正在设置 nvidia-utils-530 (530.30.02-0ubuntu1) ... 正在设置 libasan8:amd64 (12.3.0-1ubuntu1~22.04.2) ... 正在设置 cuda-nvprune-12-1 (12.1.55-1) ... 正在设置 nvidia-settings (530.30.02-0ubuntu1) ... 正在设置 libnvidia-cfg1-530:amd64 (530.30.02-0ubuntu1) ... 正在设置 nvidia-compute-utils-530 (530.30.02-0ubuntu1) ... Warning: The home dir /nonexistent you specified can't be accessed: No such file or directory Adding system user `nvidia-persistenced' (UID 129) ... Adding new group `nvidia-persistenced' (GID 137) ... Adding new user `nvidia-persistenced' (UID 129) with group `nvidia-persistenced' ... Not creating home directory `/nonexistent'. Created symlink /etc/systemd/system/multi-user.target.wants/nvidia-persistenced.service → /lib/systemd/system/nvidia-persistenced.service. 正在设置 cuda-nvrtc-dev-12-1 (12.1.55-1) ... 正在设置 libtsan2:amd64 (12.3.0-1ubuntu1~22.04.2) ... 正在设置 cuda-gdb-12-1 (12.1.55-1) ... 正在设置 libtinfo5:amd64 (6.3-2ubuntu0.1) ... 正在设置 libelf1:amd64 (0.186-1ubuntu0.1) ... 正在设置 libelf1:i386 (0.186-1ubuntu0.1) ... 正在设置 cuda-toolkit-12-config-common (12.1.55-1) ... 正在设置 libstdc++6:i386 (12.3.0-1ubuntu1~22.04.2) ... 正在设置 dctrl-tools (2.24-3build2) ... 正在设置 libtinfo6:i386 (6.3-2ubuntu0.1) ... 正在设置 libicu70:i386 (70.1-2) ... 正在设置 libdrm-amdgpu1:i386 (2.4.113-2~ubuntu0.22.04.1) ... 正在设置 libnvidia-gl-530:amd64 (530.30.02-0ubuntu1) ... 正在设置 libpciaccess0:i386 (0.16-3) ... 正在设置 libdw1:amd64 (0.186-1ubuntu0.1) ... 正在设置 libnvidia-encode-530:amd64 (530.30.02-0ubuntu1) ... 正在设置 libnvidia-encode-530:i386 (530.30.02-0ubuntu1) ... 正在设置 nsight-systems-2023.1.2 (2023.1.2.43-32377213v0) ... update-alternatives: 使用 /opt/nvidia/nsight-systems/2023.1.2/target-linux-x64/nsys 来在自动模式中提供 /usr/local/bin/nsys (nsys) update-alternatives: 使用 /opt/nvidia/nsight-systems/2023.1.2/host-linux-x64/nsys-ui 来在自动模式中提供 /usr/local/bin/nsys-ui (nsys-ui) 正在设置 libnvjpeg-12-1 (12.1.0.39-1) ... 正在设置 libcusolver-12-1 (11.4.4.55-1) ... 正在设置 libcufile-12-1 (1.6.0.25-1) ... Setting alternatives update-alternatives: 使用 /usr/local/cuda-12.1/gds/cufile.json 来在自动模式中提供 /etc/cufile.json (cufile.json) 正在设置 libedit2:i386 (3.1-20210910-1build1) ... 正在设置 libdebuginfod1:amd64 (0.186-1ubuntu0.1) ... 正在设置 cuda-nsight-systems-12-1 (12.1.0-1) ... 正在设置 libdrm-intel1:i386 (2.4.113-2~ubuntu0.22.04.1) ... 正在设置 libcusolver-dev-12-1 (11.4.4.55-1) ... 正在设置 cuda-cudart-12-1 (12.1.55-1) ... 正在设置 cuda-cupti-dev-12-1 (12.1.62-1) ... 正在设置 cuda-cudart-dev-12-1 (12.1.55-1) ... 正在设置 libcufft-12-1 (11.0.2.4-1) ... 正在设置 libegl-mesa0:i386 (23.2.1-1ubuntu3.1~22.04.3) ... 正在设置 cuda-nvcc-12-1 (12.1.66-1) ... 正在设置 libcublas-12-1 (12.1.0.26-1) ... 正在设置 libnvjpeg-dev-12-1 (12.1.0.39-1) ... 正在设置 libcusparse-12-1 (12.0.2.55-1) ... 正在设置 libgcc-12-dev:amd64 (12.3.0-1ubuntu1~22.04.2) ... 正在设置 libcufile-dev-12-1 (1.6.0.25-1) ... 正在设置 libcufft-dev-12-1 (11.0.2.4-1) ... 正在设置 libnpp-12-1 (12.0.2.50-1) ... 正在设置 xserver-xorg-video-nvidia-530 (530.30.02-0ubuntu1) ... 正在设置 libnvjitlink-12-1 (12.1.55-1) ... 正在设置 libnpp-dev-12-1 (12.0.2.50-1) ... 正在设置 cuda-opencl-12-1 (12.1.56-1) ... 正在设置 libcurand-12-1 (10.3.2.56-1) ... 正在设置 libegl1:i386 (1.4.0-1) ... 正在设置 cuda-command-line-tools-12-1 (12.1.0-1) ... 正在设置 libxml2:i386 (2.9.13+dfsg-1ubuntu0.9) ... 正在设置 cuda-compiler-12-1 (12.1.0-1) ... 正在设置 cuda-libraries-12-1 (12.1.0-1) ... 正在设置 libnvjitlink-dev-12-1 (12.1.55-1) ... 正在设置 libcusparse-dev-12-1 (12.0.2.55-1) ... 正在设置 libcurand-dev-12-1 (10.3.2.56-1) ... 正在设置 libcublas-dev-12-1 (12.1.0.26-1) ... 正在设置 gcc-12 (12.3.0-1ubuntu1~22.04.2) ... 正在设置 cuda-opencl-dev-12-1 (12.1.56-1) ... 正在设置 libllvm15:i386 (1:15.0.7-0ubuntu0.22.04.3) ... 正在设置 cuda-libraries-dev-12-1 (12.1.0-1) ... 正在设置 libgl1-mesa-dri:i386 (23.2.1-1ubuntu3.1~22.04.3) ... 正在设置 cuda-visual-tools-12-1 (12.1.0-1) ... 正在设置 dkms (2.8.7-2ubuntu2.2) ... 正在设置 nvidia-dkms-530 (530.30.02-0ubuntu1) ... update-initramfs: deferring update (trigger activated) A modprobe blacklist file has been created at /etc/modprobe.d to prevent Nouveau from loading. This can be reverted by deleting the following file: /etc/modprobe.d/nvidia-graphics-drivers.conf A new initrd image has also been created. To revert, please regenerate your initrd by running the following command after deleting the modprobe.d file: `/usr/sbin/initramfs -u` ***************************************************************************** *** Reboot your computer and verify that the NVIDIA graphics driver can *** *** be loaded. *** ***************************************************************************** INFO:Enable nvidia DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/lenovo_thinkpad DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/dell_latitude DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/put_your_quirks_here Loading new nvidia-530.30.02 DKMS files... Building for 6.8.0-85-generic Building for architecture x86_64 Building initial module for 6.8.0-85-generic Error! Bad return status for module build on kernel: 6.8.0-85-generic (x86_64) Consult /var/lib/dkms/nvidia/530.30.02/build/make.log for more information. dpkg: 处理软件包 nvidia-dkms-530 (--configure)时出错: 已安装 nvidia-dkms-530 软件包 post-installation 脚本 子进程返回错误状态 10 dpkg: 依赖关系问题使得 cuda-drivers-530 的配置工作不能继续: cuda-drivers-530 依赖于 nvidia-dkms-530 (>= 530.30.02);然而: 软件包 nvidia-dkms-530 尚未配置。 dpkg: 处理软件包 cuda-drivers-530 (--configure)时出错: 依赖关系问题 - 仍未被配置 正在设置 libglx-mesa0:i386 (23.2.1-1ubuntu3.1~22.04.3) ... 正在设置 libglx0:i386 (1.4.0-1) ... 因为错误消息指示这是由于上一个问题导致的错误,没有写入 apport 报告。 正在设置 cuda-tools-12-1 (12.1.0-1) ... dpkg: 依赖关系问题使得 nvidia-driver-530 的配置工作不能继续: nvidia-driver-530 依赖于 nvidia-dkms-530 (= 530.30.02-0ubuntu1);然而: 软件包 nvidia-dkms-530 尚未配置。 dpkg: 处理软件包 nvidia-driver-530 (--configure)时出错: 依赖关系问题 - 仍未被配置 因为错误消息指示这是由于上一个问题导致的错误,没有写入 apport 报告。 正在设置 cuda-toolkit-12-1 (12.1.0-1) ... 正在设置 libgl1:i386 (1.4.0-1) ... dpkg: 依赖关系问题使得 cuda-drivers 的配置工作不能继续: cuda-drivers 依赖于 cuda-drivers-530 (= 530.30.02-1);然而: 软件包 cuda-drivers-530 尚未配置。 dpkg: 处理软件包 cuda-drivers (--configure)时出错: 依赖关系问题 - 仍未被配置 由于已经达到 MaxReports 限制,没有写入 apport 报告。 正在设置 libnvidia-gl-530:i386 (530.30.02-0ubuntu1) ... 正在设置 libnvidia-fbc1-530:i386 (530.30.02-0ubuntu1) ... dpkg: 依赖关系问题使得 cuda-runtime-12-1 的配置工作不能继续: cuda-runtime-12-1 依赖于 cuda-drivers (>= 530.30.02);然而: 软件包 cuda-drivers 尚未配置。 dpkg: 处理软件包 cuda-runtime-12-1 (--configure)时出错: 依赖关系问题 - 仍未被配置 由于已经达到 MaxReports 限制,没有写入 apport 报告。 dpkg: 依赖关系问题使得 cuda-12-1 的配置工作不能继续: cuda-12-1 依赖于 cuda-runtime-12-1 (>= 12.1.0);然而: 软件包 cuda-runtime-12-1 尚未配置。 dpkg: 处理软件包 cuda-12-1 (--configure)时出错: 依赖关系问题 - 仍未被配置 由于已经达到 MaxReports 限制,没有写入 apport 报告。 由于已经达到 MaxReports 限制,没有写入 apport 报告。 dpkg: 依赖关系问题使得 cuda 的配置工作不能继续: cuda 依赖于 cuda-12-1 (>= 12.1.0);然而: 软件包 cuda-12-1 尚未配置。 dpkg: 处理软件包 cuda (--configure)时出错: 依赖关系问题 - 仍未被配置 dpkg: 依赖关系问题使得 cuda-demo-suite-12-1 的配置工作不能继续: cuda-demo-suite-12-1 依赖于 cuda-runtime-12-1;然而: 软件包 cuda-runtime-12-1 尚未配置。 dpkg: 处理软件包 cuda-demo-suite-12-1 (--configure)时出错: 依赖关系问题 - 仍未被配置 由于已经达到 MaxReports 限制,没有写入 apport 报告。 正在处理用于 libc-bin (2.35-0ubuntu3.8) 的触发器 ... 正在处理用于 man-db (2.10.2-1) 的触发器 ... 正在处理用于 dbus (1.12.20-2ubuntu4.1) 的触发器 ... 正在处理用于 mailcap (3.70+nmu1ubuntu1) 的触发器 ... 正在处理用于 desktop-file-utils (0.26-1ubuntu3) 的触发器 ... 正在处理用于 initramfs-tools (0.140ubuntu13.4) 的触发器 ... update-initramfs: Generating /boot/initrd.img-6.8.0-85-generic I: The initramfs will attempt to resume from /dev/nvme0n1p6 I: (UUID=d8f58ea1-1320-4202-9f33-33c2fe7a177b) I: Set the RESUME variable to override this. 正在处理用于 gnome-menus (3.36.0-1ubuntu3) 的触发器 ... 在处理时有错误发生: nvidia-dkms-530 cuda-drivers-530 nvidia-driver-530 cuda-drivers cuda-runtime-12-1 cuda-12-1 cuda cuda-demo-suite-12-1 E: Sub-process /usr/bin/dpkg returned an error code (1)
最新发布
10-12
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值