admin管理员组

文章数量:1531460

2024年7月15日发(作者:)

一、

U盘安装window7

启动时会用到grub4dos/imdisk来虚拟光驱

选用ImDisk作虚拟光驱软件

软件需求:

windows iso windows vista、windows 2008、windows7 全系列(x86、x64)都可以

grub4dos

需要做成可启动的,可在硬盘、移动硬盘、u盘、usb读卡器、光盘、pxe服务器上

如果iso文件在usb设备上,grub4dos也应该装在同一个设备

imdisk

/#ImDisk

默认带了x86、x64驱动,所以可以直接用于x86、x64版本安装。

安装示例:

移动硬盘的根目录

/imdisk 该目录存放原版imdisk

/imdisk/ 自己写的最简单的脚本,省去输入长的命令安装imdisk

/imdisk/ 自己写的最简单的脚本,省去输入长的命令挂载ISO镜像

/ 这是win7专业版(x64)的iso

/grldr grub4dos的主程序

移动硬盘的引导扇区已经用写入了

说明:

根目录不再添加文件,这里准备输入命令,需要的自己可以添加

/imdisk/文件内容

,InstallHinfSection DefaultInstall 132 .

/imdisk/文件内容

Set fullname=%~1

imdisk -a -f "%fullname%" -m #:

因为文件比较大,所以这里不准备在grub4dos里把他整个map到内存,所以必须保证它在

磁盘上是连续存放的,如果不是可以使用预先处理,否则没法再grub4dos里map

详细步骤:

1:启动到grub4dos界面

2:在grub4dos里执行

find --set-root /

map / (0xff)

map --hook

chainloader (0xff)

boot

这里就开始安装程序了

3:在这里点击Shift+F10调出CMD窗口,安装imdisk挂载iso

pushd c:imdisk (您那里可能是D: E:)

稍等几秒(等待安装成功,很快的)

c: 挂载iso到虚拟光驱

4:执行完上一步,关闭cmd窗口(可选),再关闭另外的可看到的那几个窗口

5:点击"现在安装",以下就和DVD光盘安装一样了,后边在重新启动机器的时候可以拔掉usb设备(放置再从

usb启动)

二、IMDISK详细

一、加载镜像

1.主要参数

-a 提示载入镜像

-f 或-F 镜像路径:-f后接DOS模式路径 -F后接NT模式路径

-m 载入位点,可虚拟到新的盘符或特定文件夹,#:代表第一个可用盘符

-o ro 只读模式

示例:

加载img到B盘(可写) imdisk -a -f c: -m B:

imdisk -a -F -m B:

加载img到B盘(只读) imdisk -a -f c: -m B: -o ro

加载img到D盘外置程序文件夹 imdisk -a -f c: -m B:外置程序

加载iso imdisk -a -f c: -m B:外置程序

加载镜像到第一个可用盘符 imdisk -a -f c: -m #:

2.其他

-t vm 内存模式,复制镜像内容到内存,镜像内容更改后退出不会保存到镜像

-o rem 创建USB属性的虚拟盘

示例:imdisk -a -t vm -f C: -m #: -o ro,rem

二、创建ramdisk

-a 提示创建虚拟盘

-s 虚拟盘大小,可用单位b,k,m,g,t,K,M,G,T;或应用%,代表可用内存的百分比

-m 同前

-p 格式化参数,需调用,如果不带-p参数,创建的盘需手动格式化才能用

-e 扩展虚拟盘容量(这个功能很便利,镜像大小不够用可以随意扩展)

-t vm 同前

-o rem 同前

示例:

创建10m的虚拟盘 imdisk -a -s 10m -m B:

创建容量为可用内存10%的虚拟盘 imdisk -a -s 10% -m B:

自动格式化 imdisk -a -s 10M -m B: -p "/FS:NTFS /C /Y /Q"

扩展虚拟盘容量 imdisk -e -s 100m -m B:

保存虚拟盘为img镜像文件:这又是imdisk另一比较有用的功能,创建和修改虚拟盘文件后可保存为img

镜像,但好像没有命令行参数,用右键菜单save disk content as image file

三、加载网络镜像,这部分不是很熟悉,也没条件测试,望达人补漏

-f 如 -f

-t proxy

-o ip

-o comm

四、卸载镜像

-d 示例 imdisk -d -m B:

imdisk -d -m D:外置程序

五、其它用处可能不大(对我来说)或功能不是很明确的参数

-l 列表已设置的虚拟盘

-n 显示imdisk虚拟盘的逻辑单元号时去掉deviceimdisk的前缀?不明白用来干什么

-b 当镜像不是一个分区文件而是整个硬盘时要用到

-S -x -y -S Sectorsize、-x sectors/track、-y tracks/cylinder这三个跟磁盘光盘属性有关,不是很懂

-o cd/fd/hd/rem 加载或创建镜像类型属性为光盘/软盘/硬盘/移动硬件,感觉没什么必要特别指定,用默

认的就好,把iso加载为硬盘属性或把img加载为光盘属性都是不能用的。

-u 指定虚拟盘的逻辑单元号

六、总体命令行样式(**指需指定相应内容,??指具体不祥)

imdisk -a [-t **] [-m **] [-n] [-o **,**,**...] [-f **/-F **] [-s **] [-b ??] [-S ??] [-u ??] [-x ??] [-y ??] [-p

**]

imdisk -d [-m **] [-u ??]

imdisk -l [-m **] [-u ??]

imdisk -e [-s **] [-m **] [-u ??]

七、Bugs

imdisk错误操作会引起一些问题,应该是可以避免的但作者没有注意到,应该也算是bug了,大家应用

时需注意

例如我已经加载一个镜像到B盘,后来又加载另一个镜像到B盘,这时只可unmont后一个镜像,原来的

镜像盘符没了,也卸不了,提示正在应用

把镜像加载到硬盘的盘符上也一样,像我加载到D盘,然后在umount掉,这时D盘不见了,要重启才再

出现

还有imdisk原安装文件里面的注册信息里的右键mount太霸道了,什么文件都能mount,但实际不是这

样,mount了不相应格式的文件到虚拟盘后,如果进行格式化操作可能会损坏原文件(911cd上看到的,

本人不敢试验),要小心应用,不建议用原安装文件来安装,导入必需的注册表信息就可以了

三、多功能grub

一、功能

DOS系统盘

PE系统盘

Linux系统盘

DOS工具盘

Linux工具盘

Windows XP启动

Windows Vista启动

Windows 9x/Me启动

Linux启动

二、根目录

/DOS/

/

/boot/

/KNOPPIX/isolinux/

/KNOPPIX

/

/

//default

/

linux

/

/

/grldr

三.default内容

timeout 30

color blue/black

default

title MS-DOS 7.10

find --set-root --ignore-floppies /DOS/

map --mem /DOS/ (fd0)

map --hook

chainloader (fd0)+1

rootnoverify (fd0)

title Windows PE

find --set-root /

map / (0xff) || map --mem / (0xff)

map --hook

chainloader (0xff)

savedefault --wait=2

title Damn Small Linux

kernel /

KNOPPIX/isolinux

/linux24 rw root=/dev/ram ramdisk_size=1048576

init=/etc/init quiet

initrd /

KNOPPIX/isolinux

/

boot

title DOS-TOOL

find --set-root --ignore-floppies /DOS/

map --mem /DOS/ (fd0)

map --hook

chainloader (fd0)+1

rootnoverify (fd0)

title Linux-Tool

find --set-root --ignore-floppies /boot/kernel

kernel /boot/kernel root=/dev/ram0 rw vga=normal

initrd /boot/

boot

title Windows XP

find --set-root --ignore-floppies

--ignore-cd

/ntldr

chainloader /ntldr

savedefault --wait=2

title Windows Vista

find --set-root --ignore-floppies --ignore-cd /bootmgr

chainloader /bootmgr

savedefault --wait=2

title Windows 9x/Me

find --set-root /

chainloader /

savedefault --wait=2

title Linux

find --set-root --ignore-floppies //linux

kernel //linux ramdisk_size=128000 acpi=ht vga=normal root=/dev/rd/0

devfs=mount,dall rw

initrd //

boot

title Ubuntu

find --set-root /

map / (0xff) || map --mem / (0xff)

map --hook

kernel (0xff)/casper/vmlinuz boot=casper iso-scan/filename=/ quiet splash ro

initrd (0xff)/casper/

savedefault --wait=2

title Command Line

commandline

title Reboot

reboot

title Shutdown

halt

四、GRUB详解

help

用来显示其它命令的用法

例子:help root

default

指定缺省的菜单项该命令必须在第一个title之前指定

例子: default 0

timeout

缺省的等待时间该命令必须在第一个title之前指定

例子: timeout 10

splashimage

设置图形背景文件

例子:splashimage (hd0,0) //

fontfile

设置中文支持的字体文件

例子:fontfile (hd0,0)//fonts

root

用来指定根设备该命令必须在rootnoverify之前

例子: root (hd0,0)

rootnoverify

该命令也可以用来指定根设备测试该分区的文件系统是否可以识别可以省略

例子:rootnoverify (hd0,0)

chainloader

把启动扇区的内容装入内存参数+1指的是该分区的第一个扇区

例子: chainloader +1

map

将镜像文件模拟为硬盘/光盘/软盘

map --mem

将镜像文件映射到内存

iso-scan/filename=/指定路径

当控制权交给 kernel 后从实模式过渡到保护模式(磁盘模拟也就不起作用了)路径变成镜像

内部路径

boot

启动操作系统,在使用该命令前必须用kernel或者chainloader把系统内核或者启动扇区/启

动文件装入内存,在配置文件中不需要使用这个命令

五、其他

title 启动第一主分区(hd0,0)上的操作系统

rootnoverify (hd0,0)

makeactive

chainloader +1

title 启动第二主分区(hd0,1)上的操作系统

rootnoverify (hd0,1)

makeactive

chainloader +1

硬盘为ide文件都在同一分区内存至少1.5G

title Windows XP Setup

find --set-root //

map --mem // (fd1)

map --mem (md)0x6000+800 (fd0)

find --set-root /

map --mem / (0xff)

map --hook

dd if=(fd1) of=(fd0) count=1

chainloader (0xff)

去掉map --mem (md)0x6000+800 (fd0)

会提示将标有Firadisk的磁盘插入驱动器, 内包含SYS驱动

dd if=(fd1) of=(fd0) count=1

此代码的意义不明

title ISO

find --set-root // || find --set-root //

map --mem // (fd0) || map --mem // (fd0)

map --mem (md)0x6000+800 (fd0)

find --set-root /

map --mem / (0xff) || map / (0xff)

map –hook

dd if=(fd1) of=(fd0) count=1

chainloader (0xff)

加载软驱、光驱动、硬盘(虚拟的不会改动原文件)使用前要在XP系统安装

title Windows XP

find --set-root /

map --mem / (fd0) || map --mem / (fd0)

find --set-root /ntldr

chainloader /ntldr

其他noload=pata_qdi参数root=/dev/ram0参数

title Gentoo live

find --set-root --ignore-floppies //gentoo

kernel //gentoo noload=pata_qdi root=/dev/ram0 init=/linuxrc dokeymap

looptype=squashfs loop=/fs cdroot vga=791 CONSOLE=/dev/tty1 nox

initrd //

boot

本文标签: 镜像虚拟盘文件命令加载