linux iso镜像(Linux系统镜像)

很多朋友对于linux iso镜像和Linux系统镜像不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

制作可引导iso镜像文件使用iso镜像文件

(使用iso镜像文件)

电脑

作为使用linux系统五年多的老用户,早已成为linux系统粉丝,不是Windows系统不好用,而是Linux系统提供了更好的用户体验,让用户对系统有了更明确的掌控感,无论是大问题还是小问题,总有清晰明了的错误信息和运行日志记录,方便排查原因解决问题,从这一点上讲,linux系统要比Windows系统更友好。

linux系统给了用户充分定制的可能,用户可以利用成熟的shell脚本对系统进行个性化的裁剪和设定,特别是经过LFS实践的用户会对linux系统有更为深入的了解。定制好的linux系统通常以ISO镜像的方式测试存储,在没有光驱和U盘的情况下,通过GRUB2设置相应的启动菜单,可以完整地测试定制系统的ISO镜像。

早期GRUB和LILO是两个最为常见的Linux标配引导程序,称为启动管理器,随着linux系统的发展,目前GRUB2已经成为更好地选择,因为它具有以下优势:

首先,它支持众多文件系统,包括但不限于ext4、HFS+和NTFS文件系统,这意味着可以将ISO镜像文件存放在这些文件系统中,其次,GRUB2支持从LVM和RAID中直接读取文件,并且GRUB2支持电脑网络,因此可以将ISO镜像文件存在网络上并通过TFTP协议读取。重要的是,GRUB2对传统BIOS和现代的UEFI固件都有着良好的支持,当然,UEFI模式下需要提前关闭secureboot,否则会出现cannotfindcommandloopback的报错信息。

GRUB2引导菜单可以具体编辑/etc/grub.d/40_custom文件,典型的GRUB2引导ISO镜像文件的写法如下:

menuentry"ubuntu-20.04.2.0-desktop-amd64.iso"{insmodext2setisofile="/home/linuxbabe/Downloads/ubuntu-20.04.2.0-desktop-amd64.iso"loopbackloop(hd0,5)$isofilelinux(loop)/casper/vmlinuzboot=casperiso-scan/filename=$isofilequietnoejectnopromptsplashinitrd(loop)/casper/initrd}

上面的menuentry是GRUB2的引导菜单条目,名字任意取。

上面的insmod是GRUB2引导过程中会使用到的模块,如果ISO镜像文件存储在ext4文件系统中,则需要insmodext2;如果ISO镜像文件存储在NTFS文件系统中,则需要insmodntfs。

上面的set电脑isofile是指定ISO镜像文件存放路径。

上面的loopback是指将ISO镜像文件挂载为虚拟硬盘,这里是第5个分区。

上面的linux是指定linux系统内核路径,参照ISO镜像文件中的路径。

上面的initrd是指装载linux基本系统到内存中,以初始化linux系统。

这里需要注意,在linux系统的命名规则中,传统的IDE接口硬盘一般命名为/dev/hda,将SCSI和SATA接口硬盘一般命名为/dev/sda,而固态硬盘一般命名为/dev/nvme0n1或/dev/nvme1n1等形式,然而,在GRUB2中第一块硬盘始终命名为hd0,无论这块硬盘的接口类型是什么,另外在GRUB2中硬盘分区号是从1开始的,不是从0开始。注意,在MBR分区的硬盘中,第一个逻辑分区是从5开始的,之后的逻辑分区依次类推。

在添加修改完GRUB2的启动菜单条目后,执行下面的命令之一更新引导菜单,具体取决于系统中的安装的GRUB2的情况:

sudogrub-mkconfig-o/boot/grub/grub.cfgsudo grub2-mkconfig -o /boot/grub2/grub.cfg

而在debian、Ubuntu、LinuxMint等linux发行版中,则使用下面命令:

sudoupdate-grub

重启计算机后就可以看到新的GRUB2引导菜单条目了。

例如KaliLinux的ISO镜像文件可以如下编辑:

menuentry"kali-linux-2021.1-live-amd64.iso"{insmodext2setisofile="/home/linuxbabe/Downloads/kali-linux-2021.1-live-amd64.iso"loopbackloop(hd0,5)$isofilelinux(loop)/live/vmlinuzboot=livefindiso=$isofileinitrd(loop)/live/initrd.img}

电脑

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操作系统镜像

img/iso文件是镜像文件,在Linux系统操作中有时需要制作镜像文件,那么制作镜像文件的方法有哪些呢?下面小编就给大家介绍下如何下Linux下制作可启动img/iso文件。

如何在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个块后再开始复制。

阅读剩余
THE END