linux映像(centos镜像)

这篇文章给大家聊聊关于linux映像,以及centos镜像对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

Linux下如何直接从硬盘启动Linux ISO镜像文件

通常Linux启动Linux ISO镜像都要现将文件刻录到光盘或从USB驱动启动,下面小编就给大家介绍下Linux下如何直接从硬盘启动Linux ISO文件,一起来学习下吧。

我们在Ubuntu 14.04上实施了该过程——Ubuntu及基于Ubuntu的Linux版本对此支持良好。其它Linux发行版上的工作原理也类似。

获取Linux ISO文件

这一密技需要你的硬盘驱动器上安装有Linux系统,你的计算机必须使用GRUB2启动加载器,这是大多数Linux系统的标准启动加载器。不好意思,你是不能使用Windows启动加载器来直接启动一个Linux ISO文件的。

下载你想要使用的ISO文件,并放到你的Linux分区中。GRUB2应该支持大多数Linux系统的。如果你想要在live环境中使用它们,而不想将它们安装到硬盘驱动器上,请确认你下载的是各个Linux ISO的“live CD”版本。很多基于Linux的可启动工具盘也应该可以工作。

检查ISO文件内容

你可能需要查看ISO文件的内部来知道那些特定的的文件在哪里。例如,你可以通过使用Ubuntu及其它基于GNOME的桌面环境中的归档管理器/文件管理器这些图形化应用程序来打开ISO文件。在Nautilus文件管理器中,右击ISO文件并选择使用归档管理器打开。

找到内核文件和initrd映像。如果你正在使用Ubuntu ISO文件,你会在casper文件夹中找到这些文件——vmlinuz文件是Linux内核,而initrd文件是initrd映像。后面,你需要知道它们在ISO文件中所处的位置。

检查硬盘分区路径

GRUB使用与Linux不同的“设备命名”方式。在Linux系统中,/dev/sda0是硬盘上的第一个分区——a是指第一个硬盘,而0是指第一个分区。在GRUB中,与/dev/sda0相对应的是(hd0,1)。0指第一个硬盘,而1则指它上面的第一个分区。换句话说,在GRUB设备名中,磁盘编号从0开始计数,而分区编号则从1开始计数——是啊,这真是突然令人困惑。例如,(hd3,6)是指第四磁盘上的第六分区。

你可以使用fdisk-l命令来查看该信息。在Ubuntu上,打开终端并运行以下命令:

sudo fdisk-l

你将看到一个Linux设备路径列表,你可以自行将它们转成GRUB设备名。例如,在下面的图片中,我们可以看到有个系统分区是/dev/sda1——那么,对于GRUB而言,它就是(hd0,1)。

创建GRUB2启动条目

添加自定义启动条目的最简单的方式是编辑/etc/grub.d/40_custom脚本,该文件设计用于用户自行添加启动条目。在编辑该文件后,/etc/defaults/grub文件和/etc/grub.d/脚本的内容将合成创建/boot/grub/grub.cfg文件——你不应该手工编辑这个文件。它被设计为通过你在另外的文件中指定的设置自动生成。

你需要以root特权打开/etc/grub.d/40_custom文件来编辑。在Ubuntu上,你可以通过打开终端窗口,并运行以下命令来完成:

sudo gedit/etc/grub.d/40_custom

放轻松点,你可以用你喜爱的文本编辑打开该文件。例如,你可以替换命令中“gedit”为“nano”,在Nano文本编辑器中打开它。

除非你已经添加了其它自定义启动条目,否则你应当看到的是一个几乎空的文件。你需要在注释行下添加一个或多个ISO启动部分。

这里为你展示了怎样来从ISO文件启动Ubuntu或基于Ubuntu的发行版,我们在Ubuntu 14.04下作了测试:

menuentry“Ubuntu 14.04 ISO”{set isofile=“/home/name/Downloads/ubuntu-14.04.1-desktop-amd64.iso”loopback loop(hd0,1)$isofilelinux(loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splashinitrd(loop)/casper/initrd.lz}

自定义启动条目以包含你期望的菜单的条目名称,并指定计算机上该ISO文件的正确路径,以及包含ISO文件的硬盘和分区设备名。如果vmlinuz和initrd文件的名称或路径不同,请为这些文件指定正确的路径。

(如果你的/home/目录是一个分区,请忽略/home部分,像这样:set isofile=“/name/Downloads/${isoname}”)。

重要说明:不同的Linux版本要求带有不同启动选项的不同的启动条目,GRUB Live ISO多启动项目提供了用于不同Linux发行版的菜单条目的各种不同类型。你应当为你想要启动的ISO文件调整这些示例菜单条目。你也可以仅仅从网页搜索你想要启动的Linux发行版的名称和发行编号,并附带关键词“在GRUB中从ISO启动”,以获取更多信息。

如果你想要添加更多ISO启动选项,请为该文件添加额外部分。

完成后保存文件,返回终端窗口并运行以下命令:

sudo update-grub

再次启动计算机时,你将看到ISO启动条目,你可以选择它来启动ISO文件。在启动时,你可能需要按Shift键来显示GRUB菜单。

如果在尝试启动ISO文件时你看见错误信息或黑屏,那么你的启动条目配置肯定配置错误了。即使ISO文件路径和设备名是正确的,ISO文件上的vmlinuz和initrd文件的路径可能是不正确的,或者你启动Linux系统可能需要不同的选项。

上面就是从硬盘启动Linux ISO镜像的方法介绍了,你可以直接在硬盘上启动,而不需使用USB或光盘那么麻烦了,赶紧试试看吧。

Linux内核映像vmlinux、Image、zImage、uImage区别

vmlinux:Linux内核编译的原始文件,elf格式,未压缩,便于定位内核问题,但不能直接引导系统启动。

Image:在vmlinux基础上,使用objcopy处理后的二进制内核映像,未压缩,直接引导系统启动。

zImage:Image经过gzip压缩,再使用objcopy生成的映像,常见作为uboot的引导文件。

uImage:zImage前面附加64字节头信息,描述映像类型、加载位置、大小等,专用于老版本uboot。

zImage与uImage主要区别在于前者是标准的32位内核映像,后者为附加额外信息的映像。

Linux映像的生成过程包括从原始vmlinux文件到最终引导映像的转换,过程中涉及文件格式转换和压缩等步骤。

学习资源:参考Linux内核源码地址:ke.qq.com/course/403254...

群交流:加入Linux内核源码分析交流群(群号:1095678385),获取学习资料和书籍,共享在群文件中。

linux 下制作可启动 img/iso 文件的方法

制作镜像文件有三种方法,cp, cat, dd和其它专用工具。cp,cat和 dd都可以从设备复制文件来创建镜像。而 dd命令更为强大,可以通过指定块大小,块多少来直接创建镜像。

IMG文件:

因为cp, cat只能从设备来制作镜像,但又没有专用工具来做 IMG文件,故这里用 dd命令来制作 IMG文件。

1,制作

dd if=/dev/zero of=fdimage.img count=2880

or

dd if=/dev/zero of=fdimage.img bs=1024 count=1440

2,格式化

mkfs.msdos fdimage.img

3,修改

可以用下面的命令 mount后,可直接修改

mount-o loop*.img/mnt

4,可启动

因为制作可启动镜像一定会用到虚拟机,推荐用 Virtualbox,先到网上下个 DOS启动盘来引导。用 DOS的 sys命令传递系统。推荐使用 FreeDOS,属自由软件。也可用 dd命令来传递引导引导信息,并复制启动启动时所需文件来做启动盘。以 FreeDOS为例,传递启动信息用以下命令,其中下载的启动盘为 balder10.img文件

dd if=balder10.img of=fdimage.img bs=512 count=1 conv=notrunc

多系统用 grub4dos,

1),用 grub.exe引导多系统

2),安装 grub到MBR,用 grldr来引导多系统。当然也可用同上面一样的办法用 dd直接写入引导信息。

bootlace.com--floppy--chs 0x00

注:才发现用 dd命令只能从逻辑扇区开始 copy,先前我想可否用 dd来将 grldr.mbr写入 u盘,我用自己的 U盘试了,结果不能打开了。因为我的 U盘为 fat16格式,逻辑扇区开始是OBR,接着是FAT表,结果把 FAT1表给盖了,那时还没有想到还有 FAT2呢,就格了,现在想起来郁闷啊,好多东西都没有了。

为什么软盘可以呢,因为它就没有前面的63个扇区,直接从逻辑0扇区开始的。

ISO文件:

因为文件系统的关系,就不能用 dd来直接做 ISO镜像了(当然,它还是可以从设备制作 ISO镜像)。 ISO文件的制作有专用工具,

1,制作

mkisofs-r-o cdimage.iso/home/XXX/cddir

2,格式化

用mkiso制作的 iso已有文件系统 iso9660

3,可启动

无论是引导单系统还是引导多系统都还是用 mkisofs这个工具,只是加载到光盘的 boot loader不一样而已。当然也可以将 DOS的引导器(也就是它的引导扇区)或 windows的引导器( XP系统的是 ntldr)放入让光盘引导。下面只讨论 grub4dos的使用

1),用 grub.exe引导多系统

用 DOS加载 grub.exe引导多系统

2),将 grub安装到光盘 MBR

在制作时可用下面的命令直接生成可启动镜像,其中 grldr, menu.lst要放在 cddir目录下,也就是在 cd根目录。

mkisofs-R-b grldr-no-emul-boot-boot-load-seg 0x1000-o cdimage.iso cddir

mkisofs-R-b grldr-no-emul-boot-boot-load-size 4-o cdimage.iso cddir

PS,下面给出 dd命令和 mkisofs参数说明

dd(convert and copy files)

dd是 Linux/UNIX下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

dd的主要选项:

指定数字的地方若以下列字符结尾乘以相应的数字:

b=512, c=1, k=1024, w=2, xm=number m

if=file

输入文件名,缺省为标准输入。

of=file

输出文件名,缺省为标准输出。

ibs=bytes

一次读入 bytes个字节(即一个块大小为 bytes个字节)。

obs=bytes

一次写 bytes个字节(即一个块大小为 bytes个字节)。

bs=bytes

同时设置读写块的大小为 bytes,可代替 ibs和 obs。

cbs=bytes

一次转换 bytes个字节,即转换缓冲区大小。

skip=blocks

从输入文件开头跳过 blocks个块后再开始复制。

seek=blocks

从输出文件开头跳过 blocks个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)

count=blocks

仅拷贝 blocks个块,块大小等于 ibs指定的字节数。

conv=conversion[,conversion...]

用指定的参数转换文件。

转换参数:

ascii转换 EBCDIC为 ASCII。

ebcdic转换 ASCII为 EBCDIC。

ibm转换 ASCII为 alternate EBCDIC.

block把每一行转换为长度为 cbs的记录,不足部分用空格填充。

unblock

使每一行的长度都为 cbs,不足部分用空格填充。

lcase把大写字符转换为小写字符。

ucase把小写字符转换为大写字符。

swab交换输入的每对字节。 Unlike the

Unix dd, this works when an odd number of

bytes are read. If the input file contains

an odd number of bytes, the last byte is

simply copied(since there is nothing to

swap it with).

noerror

出错时不停止。

notrunc

不截短输出文件。

sync把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

由于 dd命令允许二进制方式读写,所以特别适合在原始物理设备上进行输入/输出。例如可以用下面的命令为软盘建立镜像文件:

dd if=/dev/fd0 of=disk.img bs=1440k

有趣的是,这个镜像文件能被 HD-Copy,Winimage等工具软件读出。再如把第一个硬盘的前 512个字节存为一个文件:

dd if=/dev/hda of=disk.mbr bs=512 count=1

mkisofs(make iso file system)

功能说明:建立ISO 9660映像文件。

语法:mkisofs [-adDfhJlLNrRTvz][-print-size][-quiet][-A应用程序ID][-abstract摘要文件][-b开机映像文件][-biblio ][-c开机文件名称][-C盘区编号,磁区编号][-copyright版权信息文件][-hide目录或文件名][-hide-joliet文件或目录名][-log-file记录文件][-m目录或文件名][-M开机映像文件][-o映像文件][-p数据处理人][-P光盘发行人][-sysid系统ID ][-V光盘ID][-volset卷册集ID][-volset-size光盘总数][-volset-seqno卷册序号][-x目录][目录或文件]

补充说明:mkisofs可将指定的目录与文件做成ISO 9660格式的映像文件,以供刻录光盘。

参数:

-a或--all mkisofs通常不处理备份文件。使用此参数可以把备份文件加到映像文件中。

-A应用程序ID或-appid应用程序ID指定光盘的应用程序ID。

-abstract摘要文件指定摘要文件的文件名。

-b开机映像文件或-eltorito-boot开机映像文件指定在制作可开机光盘时所需的开机映像文件。

-biblio指定ISBN文件的文件名,ISBN文件位于光盘根目录下,记录光盘的ISBN。

-c开机文件名称制作可开机光盘时,mkisofs会将开机映像文件中的全-eltorito-catalog开机文件名称全部内容作成一个文件。

-C盘区编号,盘区编号将许多节区合成一个映像文件时,必须使用此参数。

-copyright版权信息文件指定版权信息文件的文件名。

-d或-omit-period省略文件后的句号。

-D或-disable-deep-relocation ISO 9660最多只能处理8层的目录,超过8层的部分,RRIP会自动将它们设置成ISO 9660兼容的格式。使用-D参数可关闭此功能。

-f或-follow-links忽略符号连接。

-h显示帮助。

-hide目录或文件名使指定的目录或文件在ISO 9660或Rock RidgeExtensions的系统中隐藏。

-hide-joliet目录或文件名使指定的目录或文件在Joliet系统中隐藏。

-J或-joliet使用Joliet格式的目录与文件名称。

-l或-full-iso9660-filenames使用ISO 9660 32字符长度的文件名。

-L或-allow-leading-dots允许文件名的第一个字符为句号。

-log-file记录文件在执行过程中若有错误信息,预设会显示在屏幕上。

-m目录或文件名或-exclude目录或文件名指定的目录或文件名将不会房入映像文件中。

-M映像文件或-prev-session映像文件与指定的映像文件合并。

-N或-omit-version-number省略ISO 9660文件中的版本信息。

-o映像文件或-output映像文件指定映像文件的名称。

-p数据处理人或-preparer数据处理人记录光盘的数据处理人。

-print-size显示预估的文件系统大小。

-quiet执行时不显示任何信息。

-r或-rational-rock使用Rock Ridge Extensions,并开放全部文件的读取权限。

-R或-rock使用Rock Ridge Extensions。

-sysid系统ID指定光盘的系统ID。

-T或-translation-table建立文件名的转换表,适用于不支持Rock Ridge Extensions的系统上。

-v或-verbose执行时显示详细的信息。

-V光盘ID

阅读剩余
THE END