initrd/initramfs文件制作及解压

2024-01-04 19:30
文章标签 制作 解压 initramfs initrd

本文主要是介绍initrd/initramfs文件制作及解压,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MKINITRAMFS(8)系统管理MKINITRAMFS(8)

名称
mkinitramfs-用于生成initramfs image的低级工具

概要

   mkinitramfs [option]...  -o outfile [version]mkinitramfs -h

描述
mkinitramfs脚本生成一个initramfs映像。initramfs是压缩的cpio归档文件。可以将归档文件与相应的Linux内核一起用于同一体系结构的不同机器中。
mkinitramfs用于高级用途。在您的本地机器上,update-initramfs使用相关参数调用mkinitramfs。update-initramfs保持生成的initramfs的sha1sum。它会小心生成备份并最终运行引导程序。

在启动时,内核将归档文件解压缩到RAM磁盘中,然后挂载并将其用作初始根文件系统。根设备的所有发现都发生在这个早期的用户空间中。

选项

   -c  compress覆盖initramfs.conf中的COMPRESS设置。-d confdir设置备用配置目录。-k保留用于制作映像的临时目录。-o  outfile将图像写入文件外。-r  root覆盖initramfs.conf中的ROOT设置。-v设置详细模式输出。version设置initramfs映像的内核版本(默认为正在运行的内核)。-h, --help显示用法信息并退出。

环境
mkinitramfs支持TMPDIR环境变量。如果设置,它将使用给定目录中的子目录创建其临时工作目录。否则,它使用/ var / tmp作为默认值。给定目录应位于允许执行存储在其中的文件的文件系统上,即,不应使用noexec挂载选项进行挂载。

   如果设置了SOURCE_DATE_EPOCH,则mkinitramfs尝试生成可再现的initramfs图像。

档案

   /etc/initramfs-tools/initramfs.conf脚本的默认配置文件。有关可用配置参数的描述,请参见initramfs.conf(5)。/etc/initramfs-tools/modules指定的模块将放入生成的映像中,并在系统启动时加载。格式(每行一种)与/ etc / modules相同,在modules(5)中进行了描述。/etc/initramfs-tools/conf.dconf.d目录允许您在initramfs构建时通过配置片段对bootargs进行硬编码。这允许设置ROOT或RESUME。这对于不通过根bootarg的引导加载程序特别有用。/etc/initramfs-tools/DSDT.aml如果该文件存在,它将以导致ACPI加载的方式附加到initramfs中。

initrd/initramfs文件制作—例子:

   #为当前正在运行的内核创建一个initramfs:mkinitramfs -o ~/tmp/initramfs-$(uname -r)#为特定内核创建一个initramfs,并保留builddirs:mkinitramfs -k -o ~/tmp/initramfs-2.6.21-686 2.6.21-686#调试initramfs创建(签出书面日志文件)sh -x mkinitramfs -o ~/tmp/initramfs-$(uname -r) 2> ~/tmp/log

作者
initramfs工具由Maximilian Attems maks@debian.org,Jeff Bailey jbailey@raspberryginger.com和其他许多人编写。

也可以看看
initramfs.conf(5),initramfs-tools(7),update-initramfs(8),lsinitramfs(8),unmkinitramfs(8)。

initramfs-工具2018/07/18 MKINITRAMFS(8)

initrd/initramfs文件解压:

sudo apt install binwalk
binwalk initrd.img-5.7.7-amd64-desktop

在这里插入图片描述

看到gzip部分起始地址是3001344,

dd if=initrd.img-5.7.7-amd64-desktop bs=3001344 skip=1 | zcat | cpio -i

即可得到initrd文件内容。

INITRAMFS-TOOLS(7)Linux程序员手册INITRAMFS-TOOLS(7)

名称
initramfs-tools-为mkinitramfs编写脚本的简介

描述
initramfs-tools有一个主脚本和两组不同的下标,它们将在执行的不同阶段使用。下面将在虚拟工具的帮助下分别讨论其中的每一个,该工具在安装根分区之前先对lvm分区进行碎片整理。

内核命令行
引导程序一如既往地指定内核使用的根文件系统。允许使用传统的root = / dev / sda1样式的设备规范。如果使用标签,如root = LABEL = rootPart一样,initrd将在所有可用设备中搜索具有适当标签的文件系统,并将该设备挂载为根文件系统。root = UUID = uuidnumber将以该UUID作为根文件系统的分区挂载。

标准

    init =“ <实际init的路径>”initramfs脚本完成后,将二进制文件移交给根fs执行。initramfs.clear开始时清除屏幕initramfs.runsize/ run tmpfs安装点的大小(以字节为单位)(支持后缀)或以物理RAM的百分比表示。此参数用作tmpfs的大小安装选项的值。有关详细信息,请参见https://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt。默认值为10%。root =“ <blockdevice的路径>”要安装为根文件系统的设备节点。建议的用法是按照“ root = UUID = xxx”指定UUID。rootfstype设置根文件系统类型。rootdelay设置延迟(以秒为单位)。确定mountroot等待root出现多长时间。默认值为180秒。rootflags设置文件系统安装选项字符串。nfsroot可以是“ auto”以尝试从DHCP获取相关信息,也可以是NFSSERVER:NFSPATH或NFSSERVER:NFSPATH:NFSOPTS形式的字符串。使用root = / dev / nfs使NFS进入。可以在nfs(5)中查找NFSOPTS。ip告诉如何配置ip地址。允许指定与DHCP服务器不同的NFS服务器。有关详细信息,请参见任何最新的Linux来源中的Documentation / filesystems / nfsroot.txt。NFS根目录的可选参数。BOOTIF是pxelinux格式的Mac地址,以“ 01-”和“-”开头。pxelinux通过此bootarg传递用于PXE引导的网卡的mac地址。boot本地或NFS(影响运行了哪些initramfs脚本,请参见引导脚本下的“子目录”部分)。resume简历挂钩尝试自动检测简历分区,并将第一个交换分区用作有效猜测。可以在/etc/initramfs-tools/conf.d/resume中设置RESUME变量。引导变量no​​resume将覆盖它。resume_offset指定与“ resume =”给定的分区的偏移量,交换文件的交换头位于该偏移量处。quiet会减少引导过程中输出到控制台的文本量。ro将rootfs只读安装。rw以可读写方式挂载rootfs。blacklist禁用特定模块的加载。使用blacklist = module1,module2,module3引导参数。

Debug
panic会使panic超时。panic = 是已记录的安全功能:它禁用调试Shell。

    调试产生大量输出。它将日志写入/run/initramfs/initramfs.debug。而是在使用任意参数调用时将输出写入控制台。例如使用“ debug = vc”。在实际执行相应的脚本(请参阅“启动脚本”部分)或操作之前,break在选定的阶段(顶部,模块,预安装,安装,mountroot,底部,初始化)在initramfs映像中生成一个shell。可以指定多个阶段,以逗号分隔。如果未指定阶段,则默认值为“ premount”。请注意,如果同时出现“ panic”和“ break”,则initramfs将不会生成任何shell,而是重新启动。网络控制台netconsole用选择的参数加载netconsole linux模块。all_generic_ide在启动时加载通用的IDE / ATA芯片组支持。

脚本
有效的引导和挂钩脚本名称仅包含字母,数字,破折号和下划线。其他脚本将被丢弃。

配置hook脚本
这些用于在必要时覆盖用户配置,例如,强制使用busybox而不是klibc实用程序。

hook脚本
这些在创建initramfs映像时使用,并且不包含在映像本身中。但是,它们可能导致文件包含在映像中。挂钩脚本在errexit下执行。因此,钩子脚本可能因可能的错误(退出代码!= 0)而中止mkinitramfs构建。

启动脚本
这些包含在initramfs映像中,通常在内核引导期间在安装根分区之前在早期用户空间中执行。

配置hook脚本
可以在/usr/share/initramfs-tools/conf-hooks.d中找到配置挂钩脚本。它们是由mkinitramfs在/ etc中的配置文件之后且在运行任何挂钩脚本之前获取的。它们可以覆盖initramfs.conf(5)中记录的任何变量,但是仅在绝对必要时才应这样做。例如,如果软件包的启动脚本需要klibc-utils未提供的命令,则它还应安装一个设置BUSYBOX = y的配置挂钩。

挂钩脚本
挂钩可以在两个地方找到:/ usr / share / initramfs-tools / hooks和/ etc / initramfs-tools / hooks。它们在生成initramfs映像期间执行,并负责在映像本身中包括所有必需的组件。除非在脚本中设置了先决条件,否则无法保证执行不同脚本的顺序。请注意,PREREQ仅在单个目录中使用。因此,首先要根据它们的PREREQ值对/ usr / share / initramfs-tools中的脚本进行排序并执行。然后,根据/ etc / initramfs-tools中的所有脚本按其PREREQ值排序并执行。这意味着当前不可能从包(/ usr / share / initramfs-tools)中执行本地脚本(/ etc / initramfs-tools)。

   如果钩子脚本需要的配置超出了下面列出的导出变量,它应该读取一个与/ etc / initramfs-tools目录分开的私有配置文件。它不能直接读取initramfs-tools配置文件。

标头
为了支持先决条件,每个脚本应以以下几行开头:

          #!/bin/shPREREQ=""prereqs(){echo "$PREREQ"}case $1 inprereqs)prereqsexit 0;;esac. /usr/share/initramfs-tools/hook-functions# Begin real processing below this line例如,如果您要编写一个依赖于lvm的新挂钩脚本,则以PREREQ开头的行应更改为PREREQ =“ lvm”,这将确保在自定义脚本之前运行lvm挂钩脚本。

帮助功能
/usr/share/initramfs-tools/hook-functions包含许多函数,这些函数处理挂钩脚本中的一些常见任务:

          manual_add_modules将模块(及其依赖的任何模块)添加到initramfs映像。示例:manual_add_modules isofsadd_modules_from_file读取一个文件,其中包含要添加到initramfs映像中的模块列表(每行一个)。通过将参数写入模块名称的同一行,文件可以包含注释(以#开头的行)和模块参数。示例:add_modules_from_file / tmp / modlistforce_load将模块(及其依赖项)添加到initramfs映像中,并且在引导过程中无条件加载模块。还支持通过在模块名称后列出参数来将参数传递给模块。示例:force_load cdrom debug = 1copy_modules_dir将整个模块目录从/ lib / modules / KERNELVERSION /复制到initramfs映像中。示例:copy_modules_dir内核/驱动程序/ ata

包括二进制
如果需要将二进制文件复制到initramfs模块,则应使用以下命令:

          copy_exec / sbin / mdadm / sbinmkinitramfs将自动检测可执行文件所依赖的库,并将它们复制到initramfs中。这意味着,除非使用klibc编译,否则大多数可执行文件都会在映像中自动包含glibc,这会将其大小增加几百千字节。

包括系统固件原映像(早期的initramfs)
如果需要在initramfs映像之前添加数据,则需要在文件中准备数据,然后调用prepend_earlyinitramfs函数。函数返回后即可将其丢弃。

   例:TEMP_FILE = $(mktemp ...)...prepend_earlyinitramfs $ {TEMP_FILE}rm -f $ {TEMP_FILE}

导出变量
mkinitramfs为挂钩脚本环境设置了几个变量。

    模块化对应于linux模块目录。版是针对mkinitramfs运行的$(uname -r)linux版本。康菲迪是使用的initramfs-tools配置的路径。DESTDIR是新建initramfs的根路径。DPKG_ARCH允许特定于弓的钩子添加。冗长的对应于update-initramfs运行的详细程度。BUSYBOX,键盘映射,模块如initramfs.conf(5)中所述。BUSYBOXDIR是应从其中安装busybox实用程序的目录,如果不使用busybox,则为空。

引导脚本
与钩子脚本类似,引导脚本可以在两个位置/ usr / share / initramfs-tools / scripts /和/ etc / initramfs-tools / scripts /中找到。这两个目录有许多子目录,它们控制执行脚本的引导阶段。

标头
就像钩子脚本一样,不能保证一个子目录(请参见下面的“子目录”)中不同脚本的执行顺序。为了定义特定的顺序,应该使用与钩子脚本相似的标头:

          #!/ bin / shPREREQ =“”prereqs(){回声“ $ PREREQ”}案例$ 1先决条件先决条件出口0;;埃萨克必要时修改PREREQ以列出同一子目录中的其他脚本。

帮助功能
在/ scripts / functions中提供了许多功能(大多数用于处理输出)来引导脚本:

          log_success_msg记录成功消息示例:log_success_msg“成功完成分组”log_failure_msg记录失败消息示例:log_failure_msg“缺少基础设施组件froobz”log_warning_msg记录警告消息示例:log_warning_msg“只能进行部分混编”log_begin_msg记录一条消息,指示某些处理步骤已开始log_end_msg记录一条消息,指示某些处理步骤已完成例:log_begin_msg“开始磨碎”# 做一点事log_end_msgpanic记录错误消息并在initramfs映像中执行shell,以允许用户调查情况。示例:恐慌“粉碎失败”

子目录
/ usr / share / initramfs-tools / scripts和/ etc / initramfs-tools / scripts都包含以下子目录。

          在此目录中,init-top脚本是在挂载sysfs和procfs之后要执行的第一个脚本。它还运行用于填充/ dev树的udev挂钩(udev将一直运行,直到init-bottom为止)。init-premount在由钩子和/ etc / initramfs-tools / modules指定的模块加载后发生。local-top或nfs-top执行完这些脚本之后,根设备节点应该存在(本地),或者网络接口应该可用(NFS)。local-block这些脚本以本地块设备的名称调用。执行完这些脚本后,该设备节点应存在。如果local-top或local-block脚本未能创建所需的设备节点,则将定期调用local-block脚本以重试。在验证了根设备的健全性(本地)或启动了网络接口(NFS)之后,但在实际的根fs挂载之前,将运行local-premount或nfs-premount。在安装rootfs(本地)或安装NFS根共享之后,将运行local-bottom或nfs​​-bottom。init-bottom是将procfs和sysfs移至实际的rootfs之前执行的最后一个脚本,并且执行移交给了init二进制文件,该文件现在应该在已挂载的rootfs中找到。udev已停止。

启动参数
/conf/param.conf允许引导脚本更改init顶部列出的导出变量。将新值写入其中。如果存在启动脚本,它将在启动脚本运行后获得。

例子
挂钩脚本
钩子脚本示例如下所示(通常放在/ etc / initramfs-tools / hooks / frobnicate中):

          #!/ bin / sh#示例frobnication钩子脚本PREREQ =“ lvm”prereqs(){回声“ $ PREREQ”}案例$ 1先决条件先决条件出口0;;埃萨克。/ usr / share / initramfs-tools / hook-functions#在此行下开始实际处理如果[!-x“ / sbin / frobnicate”]; 然后出口0科幻force_load frobnicator间隔= 10cp / sbin / frobnicate“ $ {DESTDIR} / sbin”出口0

启动脚本
引导脚本示例如下所示(通常放在/ etc / initramfs-tools / scripts / local-top / frobnicate中):

          #!/ bin / sh#示例frobnication引导脚本PREREQ =“ lvm”prereqs(){回声“ $ PREREQ”}案例$ 1先决条件先决条件出口0;;埃萨克。/脚本/功能#在此行下开始实际处理如果[!-x“ / sbin / frobnicate”]; 然后恐慌“找不到Frobnication可执行文件”科幻如果[!-e“ / dev / mapper / frobb”]; 然后恐慌“找不到磨碎设备”科幻log_begin_msg“开始磨碎”/ sbin / frobnicate“ / dev / mapper / frobb” || 恐慌“粉碎失败”log_end_msg出口0

导出变量
init为启动脚本环境设置了几个变量。

    ROOT对应于root引导选项。诸如cryptsetup或live-initramfs之类的高级引导脚本需要技巧。否则,请不要管它。ROOTDELAY,ROOTFLAGS,ROOTFSTYPE,IP对应于rootdelay,rootflags,rootfstype或ip boot选项。不建议使用ROOTDELAY;您应该实施本地阻止启动脚本,而不是延迟或轮询。DPKG_ARCH允许特定于Arch的启动操作。黑名单,恐慌,安静,恢复,noresume,resume_offset根据相关的引导选项进行设置。break对于在设置和编码启动脚本期间进行手动干预很有用。原因参数传递给了panic helper函数。用于找出为什么要进入initramfs外壳。init通常将路径传递到init(8)/ sbin / init。只读是安装根目录的默认值对应于ro bootarg。被rw bootarg覆盖。根源是通常安装/ root的路径。debug表示已捕获调试日志以进行进一步调查。

从其他包装中更新INITRAMFS
软件包维护者脚本不应直接运行update-initramfs。安装用于initramfs-tools的钩子的软件包应包括包含以下内容的触发器文件:
激活noawait更新initramfs

   内核软件包必须调用Debian Kernel Handbook中记录的内核挂钩。需要initramfs才能运行的软件包,但不是内核软件包,应包含包含以下内容的触发器文件:激活等待更新initramfs

内核挂钩
initramfs-tools包含挂钩脚本,这些内核脚本在安装和删除时会被内核软件包调用,因此initramfs会根据需要自动创建,更新或删除。如果环境变量INITRD设置为No,则钩子脚本不执行任何操作。对于使用make deb-pkg和CONFIG_BLK_DEV_INITRD而不是在内核配置中设置的内核软件包,或者使用make-kpkg而不使用-的内核软件包,情况就是如此。 -initrd选项。

调试
检查生成的initramfs的内容很容易。可能需要仔细检查它是否包含相关的二进制文件,库或模块:
lsinitramfs /boot/initrd.img-3.16-3-amd64

档案
/run/initramfs/fsck.log
fsck命令的日志及其初始化输出在initramfs中运行。

   / run / initramfs / fsck-root仅在fsck为根文件系统成功运行时存在。/运行/ initramfs / fsck-usr仅在fsck为/ usr文件系统成功运行时存在。

作者
initramfs工具由Maximilian Attems maks@debian.org,Jeff Bailey jbailey@raspberryginger.com和其他许多人编写。

该手册由DavidHärdemandavid@hardeman.nu编写,由Maximilian Attems maks@debian.org更新。

也可以看看

    initramfs.conf(5),mkinitramfs(8),update-initramfs(8),lsinitramfs(8)。

initramfs-工具2018/07/18 INITRAMFS-TOOLS(7)

INITRAMFS.CONF(5)

名称
initramfs.conf-mkinitramfs的配置文件

描述
可以通过其配置文件来修改mkinitramfs的行为。

   文件中的每一行可以是配置变量,空白行或注释。变量的值由以下形式的语句分配:name = [value]可以将配置选项分解为配置摘要,并放在/etc/initramfs-tools/conf.d目录中的各个文件中。此目录中的文件始终在主配置文件之后读取,因此您可以覆盖主配置文件中的设置,而无需直接对其进行编辑。

一般变量
MODULES
指定initramfs映像的模块。

          / etc / initramfs-tools / modules和/usr/share/initramfs-tools/modules.d/*中列出的模块始终包含在initramfs中,并在引导过程的早期加载。除了以上文件中列出的模块以外,list在引导时不会加载任何其他模块。最多添加了大多数文件系统,所有ata,sata,scsi和usb驱动程序。dep尝试猜测运行框需要哪些模块,仅添加这些模块。netboot添加了基本模块和网络模块,但是跳过了块设备。默认设置为多数。BUSYBOX包括用于启动脚本的busybox实用程序。如果设置为“ n”,则mkinitramfs将构建不带busybox的initramfs。请注意,许多启动脚本都需要busybox实用程序。KEYMAP如果设置为“ y”,则将在initramfs阶段加载控制台键盘映射。无论如何,键映射将在以后由初始化脚本加载,并且可能需要输入的程序包通常会自动设置此变量,因此通常无需设置此变量。COMPRESS指定用于initramfs映像的压缩方法。如果内核缺乏支持(CONFIG_RD)或相应的用户空间实用程序不存在,则mkinitramfs将默认为gzip。UMASK设置生成的initramfs文件的umask值。有助于避免泄露最终密钥。BOOT	允许使用nfs驱动器作为驱动器的根。默认为从本地媒体(硬盘,USB记忆棒)启动。设置为nfs以获取NFS根共享。RUNSIZE/ run tmpfs安装点的大小(以字节为单位)(支持后缀)或以物理RAM的百分比表示。此参数用作tmpfs的大小安装选项的值。有关详细信息,请参见https://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt。可以被可选的initramfs.runsize = bootarg覆盖。默认值为10%。

NFS启动变量

    RESUME指定用于磁盘暂挂(休眠)的设备,initramfs代码应尝试从该设备恢复。如果未定义或将其设置为auto,则mkinitramfs将自动选择最大的可用交换分区。将其设置为none可禁用从磁盘恢复。

NFS BOOT的变量

    DEVICE指定要使用的默认网络接口,例如eth0。ip或BOOTIF bootargs可能会覆盖它。ROOT当无法传递root bootarg时,允许进行可选的root bootarg硬编码。根bootarg会覆盖该特殊设置。NFSROOT默认为自动,以便从DHCP服务器获取值。否则,您需要指定HOST:MOUNT。

档案
/etc/initramfs-tools/initramfs.conf

作者
initramfs工具由Maximilian Attems maks@debian.org,Jeff Bailey jbailey@raspberryginger.com和其他许多人编写。宽松地基于Herbert Xu的mkinitrd.conf。

也可以看看
initramfs-tools(7),mkinitramfs(8),update-initramfs(8)。

initramfs-工具2018/07/18 INITRAMFS.CONF(5)

LIVE-TOOLS(8)

名称
live-update-initramfs-将更新的内核和initrd映像写到实时媒体(live media)。

描述
live-update-initramfs是一个包装,代替了initramfs-tools软件包提供的update-initramfs命令。

在具有持久层的实时系统中,live-update-initramfs会将更新后的内核和initrd映像写到实时媒体中。这允许内核通过apt-get从实时系统内部进行升级,而无需手动将内核和initrd同步到实时介质。live-update-initramfs通过所有命令行参数传递给原始的update-initramfs命令;有关原始update-initramfs命令的选项的更多信息,请参见update-initramfs.orig.initramfs-tools(8)。

也可以看看
live-tools(7)

主页
有关live-update-initramfs和Live Systems项目的更多信息,可以在主页http://live-systems.org/和手册中找到<http://live-systems.org/manual/ >。

BUG
可以通过在http://bugs.debian.org/的Bug跟踪系统中为live-tools软件包提交错误报告来报告错误,也可以通过在<debian-live @ lists上向Live Systems邮件列表写邮件来报告错误.debian.org>。

作者
live-update-initramfs由Daniel Baumann mail@daniel-baumann.ch编写。

5.0〜a2-1 2015-09-25 LIVE-TOOLS(8)

这篇关于initrd/initramfs文件制作及解压的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/570360

相关文章

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

Python脚本:批量解压RAR文件

所需模块: os.getcwd() #获取脚本文件路径os.system() #执行系统命令 import os#source_dir = input("Please input in source_dir:")#unzip_dir = input("Please input in unzip_dir:") source_dir = os.

Tomcat下载压缩包解压后应有如下文件结构

1、bin:存放启动和关闭Tomcat的命令的路径。 2、conf:存放Tomcat的配置,所有的Tomcat的配置都在该路径下设置。 3、lib:存放Tomcat服务器的核心类库(JAR文件),如果需要扩展Tomcat功能,也可将第三方类库复制到该路径下。 4、logs:这是一个空路径,该路径用于保存Tomcat每次运行后产生的日志。 5、temp:保存Web应用运行过程中生成的临时文件

OpenStack离线Train版安装系列—0制作yum源

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack镜像制作系列5—Linux镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

OpenStack镜像制作系列4—Windows Server2019镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录  CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系

OpenStack镜像制作系列2—Windows7镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系列

OpenStack镜像制作系列1—环境准备

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

CSDN:OpenStack镜像制作教程指导(全)

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录,涉及基本环境准备、常见类型操作系统的镜像制作。 让你可以从零开始安装一个操作系统,并支持个性化制作OpenStack镜像。 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows

docker学习系列(四)制作基础的base项目镜像--jdk+tomcat

前面已经完成了docker的安装以及使用,现在我们要将自己的javaweb项目与docker结合 1.1准备jdk+tomcat软件 ​​我下载了apache-tomcat-7.0.68.tar.gz和jdk-7u79-linux-x64.tar.gz,存储于Linux机器的本地目录/usr/ect/wt/下(利用xshell上传)。利用linux命令 tar -zxvf apache-tom