2009年2月22日星期日

Linux操作系统下GRUB引导过程及原理

Linux操作系统下GRUB引导过程及原理

GRUB是一个多重启动管理器。GRUB是GRand Unified Bootloader的缩写,它可以在多个操作系统共存时选择启动哪个系统。它可以启动的操作系统包括Linux, FreeBSD, Solaris, NetBSD, BeOS, OS/2, Windows 95/98 /NT /2000。它可以载入操作系统的内核和初始化操作系统(如Linux, FreeBSD),或者把启动权交给操作系统(如Windows 98)来完成启动。Thiz Server默认安装GRUB,并用它来启动机器。
  安装了GRUB,开机后会出现一个菜单,列出所有的启动选项。如果设置了启动画面,则会显示启动画面,按【Esc】键则可以取消启动画面显示菜单选项GRUB,按【e】是编辑启动命令,按【c】是使用命令行等。用上下键可以选择菜单项,按【Enter】启动所选项。按【e】键可以编辑所选项的启动命令,您可以用这个功能临时改变系统的启动参数。按【c】键则进入命令行模式。在命令行模式下可以输入命令直接执行,例如可以敲入poweroff关闭电脑。按【Tab】键可以列出所有支持的命令。
  GRUB可以代替LILO来完成对Linux的启动,特别适用于 Linux与其他操作系统共存情况,与LILO相比,它有以下特点:
  支持大硬盘
  以前许多Linux发行版本的LILO 都有同样的一个问题:根分区(/boot分区)不能分在超过1024柱面的地方,一般是在8.4GB左右的地方,否则LILO不能安装,或者安装后不能正确启动系统。而GRUB就不会出现这种情况,只要安装时您的大硬盘是在LBA模式下,GRUB就可以启动根分区在8GB以外的操作系统。在LILO下,您需要手动输入操作系统的名字来启动不同的操作系统。而GRUB使用一个菜单来选择不同的系统进行开机。您还可以自己设置各种参数,如延迟时间、默认操作系统等。
  支持开机画面
  GRUB支持在启动开机的同时显示一个开机画面。对于玩家来说,这样可以制作自己的个性化开机画面;对于PC厂商来说,这样可以在开机时显示电脑的一些信息和厂商的标志等。GRUB支持640×480, 800×600, 1024×768各种模式的开机画面,而且可以自动侦测并选择最佳模式,与Windows的320×240的开机画面不可同日而语。
  两种执行模式
  GRUB不但可以透过设置文件进行例行的开机,还可以在选择开机前动态改变开机时的参数,还可以动态载入各种设备。例如您在Linux下编译了一个新的内核,但不能确定它能不能工作,您就可以在开机时动态改变GRUB的参数,尝试装载这个新的内核进行使用。GRUB的命令行有非常强大的功能,而且支持如bash或DOSKEY一样的历史功能,您可以用上下键来寻找以前的命令。
  分区位置改变后不必重新设置
  LILO是透过读取硬盘上的绝对分区来装入操作系统,因此每次分区改变都必须重新设置LILO,例如您用Partition Magic调整了分区的大小,那LILO在您重新设置好之前就不能引导这个分区的操作系统了。而GRUB是透过文件系统直接把内核读取到内存,因此只要操作系统内核的路径没有改变,GRUB就可以启动系统。除此之外,GRUB还有许多非常强大的功能。例如支持多种外部设备,动态装载操作系统内核,甚至可以透过网络装载操作系统内核。GRUB支持多种文件系统、多种可执行文件格式,以及自动解压,还可以启动不支持多重引导的操作系统等。

GRUB启动时会在 /boot/grub 中寻找一个名字为grub.conf的设置文件,如果找不到此设置文件则不进入菜单模式而直接进入命令行模式。
  grub.conf是一个纯文字文件,您可以用任何一个文字编辑器来打开它。每一行代表一个设置命令,如果一行的第一个字符为井号#,则这一行为注释,您可以简单地用增加或减少注释行来改
变设置。
  编辑grub.conf时,一般会有以下几行:
  
timeout second
  设置在second秒之后引导默认的操作系统。
  Thiz Linux 默认是timeout 10,也就是说10秒之内如果没有其他命令就启动系统。如果设成 -1,则 GRUB 会一直等待直到用户选择一个选项为止。
  
default num
  默认启动第 num +1行选项,也就说default=0,则默认启动菜单第1行的操作系统,default=1,则启动第2行的系统,如此类推。
  
splash pathname/filename
  指出开机画面的文件所存放的路径和文件名,如 splash /boot/logo/800x600x8.img 是指用在/boot/logo路径下的800×600像素的文件作为开机画面。
  
title OSname title
  后面的字符就是在菜单项上所看见的选项,可以写上操作系统的名字和描述,如用title BluePoint Linux, Single Mode 代表这一选项的话,是引导Thiz Linux的单用户模式。
  下面结合两个系统引导描述来解释几个引导选项的意义:
  title Thiz Server, Default Mode
  root (hd0,1)
  kernel /boot/vmlinuz vga=auto root=/dev/hda2
  hd0是指第一个硬盘(主硬盘),(hd0,1)是指第一个硬盘的第二个分区。kernel /boot/vmlinuz是指出Linux内核的路径在/boot/vmlinuz中。vga=auto是设置显示模式,root=/dev/hda2是指把第一个硬盘的第二个分区作为根挂载点。
  title Microsoft Windows
  root (hd1,0)
  chainloader (hd1,0)+1
  root (hd1,0)是指第二个硬盘(从硬盘)上的第一个分区。
  chainloader (hd1,0)+1 是指装入一个分区的数据然后把引导权交给它。

Windows XP系统启动过程原理全面分析

Windows XP系统启动过程原理全面分析

现在个人用的最多的就是windows XP,要正确使用Windows XP,一定要熟练掌握Windows XP的启动原理。Windows XP的启动过程所执行的操作可以看成是一个操作系统整体环境的快照或缩影,了解了Windows XP的启动原理,有助于深入了解Windows XP的多方面机制。
正如很多人所经常遇到的那样,Windows XP并不是十全十美的,如果操作失误,很可能导致Windows XP的各种故障。其中,启动故障比较常见,也比较难于对付。因为,如果系统启动不起来,对它的排错也就无从谈起。所以,熟练掌握对Windows XP启动故障的排除,也是一个“菜鸟”必不可少的技能。
Windows XP是基于NT技术的操作系统,它的启动过程同Windows NT和Windows 2000基本相同,但是同DOS、Windows 3.X、Windows 9.X和Windows ME大相径庭。Windows XP彻底抛弃了原先的基于字符的实模式环境,其启动过程比较复杂。 一般来说,Windows XP的启动过程,主要包括以下几个步骤:

一、电源开启自检过程 在打开计算机电源时,首先开始电源启动自检过程。在BIOS中包含一些基本的指令,能够帮助计算机在没有安装任何操作系统的情况下进行基本的启动。电源启动自检过程首先会从BIOS中载入必要的指令,然后进行如下一系列的自检操作: 进行硬件的初始化检查,例如检查内存的容量等。 验证用于启动操作系统的设备是否正常,例如,检查硬盘是否存在等。从CMOS中读取系统配置信息。 在完成了电源启动的自检之后,每个带有固件的硬件设备,如显卡和磁盘控制器,都会根据需要完成内部的自检操作。

二、初始化启动过程 在完成了电源启动自检过程之后,存储在CMOS中的设置,例如磁盘的引导顺序等,能够决定由哪些设备来引导计算机。例如,可以设置磁盘的引导顺序为首先通过A盘引导,其次才通过C盘引导,则系统会首先尝试用A盘引导系统,如果A盘存在并可引导,则通过A盘引导。如果A盘不存在,则通过C盘引导系统。如果A盘存在,但不是引导盘,则系统地提示系统不可引导。 一般来说通常会使用硬盘引导。在进行硬盘引导时,启动过程通常按照如下的步骤进行:系统首先检测打开电源的硬盘。 www.gadmin.cn若该硬盘是启动盘,BIOS就将主引导记录(Main Boot Record――MBR)中的引导代码载入内存。 接着,BIOS会将启动过程的运行交给MBR来进行。 计算机搜索MBR中的分区表,找出活动分区(Active Partition)。计算机将活动分区的第一个扇区中的引导代码载入到内存。 引导代码检测当前使用的文件系统是否可用。 www.ieeye.com/Goodie.htm引导代码查找ntldr文件,找到之后启动它。 (该文件ntldr文件将来在登录进入windows系统之后C盘根目录隐藏文件下找到)BIOS将控制权转交给ntldr,由ntldr完成操作系统的启动。   

注意:这里简单介绍一下MBR的概念。MBR位于启动磁盘的第一个扇区,其中主要包含引导代码(Boot Code)和分区表(Partition Table)数据。引导代码主要用于引导系统。而分区表则主要用于标识基本分区和扩展分区。

三、引导程序载入过程 本过程主要由ntldr 文件完成。Ntldr从引导分区载入启动文件,然后完成如下一些任务。
1、在基于X86CPU的系统下,设置CPU的运行使用32位的Flat内存模式 。对基于X86CPU的计算机来说,第一次启动的时候总是进入所谓的实模式(RealMode)。在实模式下CPU的某些特性不能完全发挥,这是因为它要保证同8位或16位的CPU(如8086、8088)相兼容。实模式下由于系统规格的限制,无法对大容量内存进行直接存取,而必须通过分段的方式完成。对于32位的Windows XP来说,8位或16位的CPU显然是无用的。 ntldr首先会将CPU切换到32位的模式,从而确保Windows XP的正常。在CPU的32位模式下,可以对大容量内存进行直接存取,而彻底抛弃了原先在8位或16位下分段存取内存的不便。这也是为什么32位模式称作Flat内存模式的原因。
2、启动文件系统 ntldr 中包含相应的代码,能够帮助Windows XP完成对NTFS或FAT格式的磁盘进行读写。从而能够读取、访问和复制文件。
3、读取boot.ini 文件 在这一步中,ntldr 会分析boot.ini文件,确定操作系统分区所在的位置。 对于单引导的系统来说,ntldr 会通过启动ntdetect.com来初始化硬件检测状态。 对于多引导系统来说,首先由用户在操作系统菜单中选择要启动的操作系统然后而由ntldr进行相应的操作。 如果用户选择启动ntdetect.com来初始化硬件检测状态。 如果选择启动旧式的微软操作系统,如MS-DOS、Windows 9x/ME,ntldr会将从bootsect.dos文件中读取MBR代码,然后将控制权交给bootsect.dos中的MBR。
4、根据需要提供启动菜单 在这一步,如果用户按下F8键,则会显示启动菜单,允许用户选择不同的启动方式,例如使用安全方式启动,或是使用最后一次正确的配置启动等。
5、检测硬件和硬件配置 在这一步中,ntldr 启动ntdetect.com文件进行基本的设备检查,然后将 boot.ini文件中的信息,以及注册表中的硬件和软件信息传递给ntoskrnl.exe 程序。

四、检测和配置硬件过程 在处理完boot.ini文件之后,ntldr会启动ntdetect.com程序。在基于X86的系统中,ntdetect.com会通过调用系统固件程序收集安装的硬件信息,然后由ntdetect.com将这些信息传递送回ntldr。Ntldr获取从ntdetect.com发来的信息后,将这些信息组织成为内部的断气结构形式,然后由ntldr 启动ntoskrnl.exe ,并将这些信息发送给它。 www.ieeye.com/Goodie.htmNtdetect.com 会收集如下类型的硬件信息: 系统固件信息,例如时间和日期等 总线适配器的类型 显卡适配器的类型 键盘 通信端口 磁盘 软盘 输入设备,例如鼠标 并口 安装在ISA槽中的ISA设备 完成信息的检测之后,Windows XP会在屏幕上显示那个著名的Windows XP商标,并显示一个滚动的,告诉用户Windows 的启动进程。

五、内核加载过程在此过程中,ntldr实施下列一些功能。
1、将内核(ntoskrnl.exe)和硬件抽象层(hal.dll)载入到内存
2、加载控制集信息 在这一过程中,ntldr从注册表中的HKEY_LOCAL_MACHINE\SYSTEM位置加载相应的控制集(Control Set)信息,并确定在启动过程中要加载的设备驱动。
3、加载设备驱动程序和服务 在这一步中,系统会在BIOS的帮助下开始加载设备驱动程序,以及服务。
4、启动会话管理器 完成上面的过程之后,内核会启动会话管理器(Session Manager),这是一个名为smss.exe 的程序,其作用表现如下: (1)创建系统环境变量 (2)创建虚拟内存页面文件

六、用户登录过程 在这一过程中,Windows 子系统会启动winlogon.exe,这是一个系统服务,用于提供对Windows 用户的登录和注销的支持。Winlogon.exe 可以完成如下一些工作: 启动服务子系统(services.exe),也称服务控制管理器(Service Control Manager, SCM)。 启动本地安全授权(Local Security Authority , LSA)过程(lsass.exe)。 在开始登录提示的时候,对Crtl+Alt+Del组合键进行分析处理。一个图形化的识别和认证组件收集用户的帐号和密码,然后将这些信息安全地传送给LSA以进行认证处理。如果用户提供的信息是正确的,能够通过认证,就允许用户对系统进行访问。要注意的是,如果您的计算机中,只有Administrator这一个用户,那么在欢迎屏幕中就会显示Administrator 用户项。如果您的计算机中不仅有Administrator用户,还有别的可以交互登录的用户,那么欢迎屏幕中就只显示出Administrator之外的用户,而不显示Administrator用户。 如果用户希望以Administrator用户登录,该怎么办呢?实际很简单,直接在欢迎屏幕中按下两次Crtl+Alt+Del组合键,即可打开标准的登录窗口,可以再输入Administrator 的用户名和密码,以便用最高管理员的身份登录。

七、即插即用设备的检测过程 对即插即用设备的检测,实际上是和登录过程异步进行的。由系统固件、硬件、设备驱动和系统特性决定了Windows XP如何对新设备进行检测和枚举。当即插即用组件正常工作后,Windows XP会对新设备进行检测,为它们分配系统资源,并在尽量不要用户提供选择的情况下,为新设备安装一个合适版本的驱动程序。
至此,Windows XP已成功启动!!!

版权申明:本文在www.windowso.comwww.ieeye.com首发 作者:热能

2009年2月18日星期三

将Vista微软雅黑设为XP默认字体

将Vista微软雅黑设为XP默认字体

每天打开电脑后跃入眼帘的各种文字是什么字体?XP默认字体是"宋体",不幸的是这种字体在分辨率较高的屏幕上看起来并不十分舒服,"宋体"显示英文字也很难看。火热测试的Vista内置了一款叫做"微软雅黑"的中文字体,显示中英文都非常漂亮,为XP换上之后效果好极了,怎么给XP装上这款字体呢?

1.别把问题想得太简单

"微软雅黑"字体移植到XP中很容易,只需把字体文件复制到Windows\FONTS目录就行了。但是要让所有程序都使用这种字体就不那么简单了,虽然在"主题和外观设置"中可以设定系统的默认字体,但有很多应用程序在设计时就为自己指定了"宋体"字,所以并不理会系统默认字体是什么。系统中出现一半"微软雅黑"、一半"宋体"的界面很不协调。最简单的办法就是让"微软雅黑"假扮成"宋体",比如把它的文件名改成原来"宋体"的文件名。不过经测试这个方法并不好,因为系统调用字体时需要扫描字体文件中的相关信息来判断是否是需要调用的字体,而并非仅仅通过文件名。如果用上面提到的方法来替换掉"宋体"字,那么整个系统界面显示出的字体就会出现异常,难看不说,还可能导致很多程序界面乱码一片。

2.也别想得太复杂

真正有效的办法是把"微软雅黑"字体文件中的信息修改为"宋体"字的信息,并替换掉系统中原来的"宋体"字文件; 我们需要使用一款叫做"Font Creator"的软件(下载地址:http://www.high-logic.com/download.html),这款软件有30天的免费试用期。
微软雅黑下载:http://down.wglm.net/Software/Catalog9/737.html
第一步: 下载安装后,先打开"微软雅黑"和"宋体"的文件,"宋体"文件名是"SIMSUN.TTC",默认放在Windows\FONTS目录中,把它复制出来并将扩展名改为TTF,因为"Font Creator"并不能直接打开TTC文件; 打开"宋体"时Font Creator会提示需要解压一次,执行此操作后再打开名为"SIMSUN_0.TTF"的字体文件即可(打开速度较慢,不要中止程序)。
第二步: 2种字体全部打开后,把"宋体"的信息完全复制到"微软雅黑"字体当中。首先选中"宋体"字的子窗口,接着在"Font Creator"的主菜单上选择"Format→Naming",软件会弹出字体相关信息的对话框,包括字体名和版本号等(见图2)。把这些信息逐一复制到"微软雅黑"字体信息对话框的相同位置("Language"列表中的每一项都需要单独选中后分别进行复制)。
第三步:当选中"Chinese-PRC"项时右边名称编辑框出现的"\5B8B\4F53"代表"宋体"这两个汉字的字体代码; 修改时最好把版本号改得比原来"宋体"字高一点,如5.0等等(在"Font Creator"的主菜单上选择"Format→Settings",弹出对话框下的选项卡中也有版本号设置项目)。 第四步: 把修改好的"微软雅黑"字体另存一份,并把文件名修改为"SIMSUN.TTC"。由于,Wins不允许替换当前正在使用的字体文件,所以需要使用DOS启动盘引导后(或者使用Unlocker工具解锁后替换)进入FONTS目录替换SIMSUN.TTC。为了以防万一,替换之前最好先备份一次。

转自中国Vista联盟 http://www.52vst.com
-------------更改Windows系统默认字体的方法 2006-07-07 http://www.enet.com.cn/article/2006/0707/A20060707126976.shtml

WinXP/SP1-2的修改方法:   
找到 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize]     
把"GUIFont.Facename"字符串的值改为 Tahoma  
把"GUIFont.Height" DWORD 值改为 8     
结果如下面所示:     
"GUIFont.Facename"="Tahoma"   
"GUIFont.Height"=dword:00000008  
  
Vista修改方法(2个地方):     [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize]   
"GUIFont.Facename"="Tahoma"     
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]   
"MS Shell Dlg 2"="Tahoma"   
"MS Shell Dlg"="Tahoma"

---------参考资料: 用微软雅黑代替宋体开启 ClearType UI Wins系统下的宋体字,最小阅读范围是12px。当你把字体设置为小于 12px时,IE比较"智能",它能把中文字体自动调整到12px这个可读范围,而Firefox就比较"老实",忠实地再现CSS里的设置。
Wins下11px的中文宋体字是难于阅读的。

另:Wins系统下,12px, 14px, 16px这三个字号的表现都不错。

让XP SP3也支持网络级身份验证

让XP SP3也支持网络级身份验证
(转载于cnbeta)

SP3有一点,就是远程桌面更新到了V6.1。查看了相关网页,了解到6.0以上版本的远程桌面是支持NLA(Network Level Authentication )的。NLA说白了就是在你进行远程桌面之前就进行身份验证,而不是你连上之后再在登陆的时候进行身份验证。而Vista 默认是“只允许运行带网络身份验证的远程计算机连接”。于是乎,我从SP3连Vista失败。


网上解决办法是:设置vista的远程桌面连接方式为“允许任意版本远程桌面连接”。这种降级来适应XP,我以为是一种倒退,不然将XP 的远程桌面升级到6.1没有任何意义啊。故而在合作伙伴新闻组中发帖询问微软工程师:
  微软工程师起初的答复是XP不支持NLA。后来纠正说SP3支持NLA,并告诉我按照以下方法操作使XP支持NLA。他给我我一片KB:  
http://support.microsoft.com/kb/951608/
  
开启NLA操作是:
1. 单击 开始 ,单击 运行 ,键入 regedit ,然后按 ENTER 键。
2. in navigation pane,locate and then click following registry subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa   
3. 在详细信息窗格中, 用鼠标右键单击 SecurityProviders ,然后单击 修改 。   
4. 在 数值数据 框,键入 tspkg 。 留下特定于其他 SSP,任何数据,然后单击 确定 。   
5. in navigation pane,locate and then click following registry subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders   
6. in details pane,right-click SecurityProviders,and then click Modify 。   
7. 在 数值数据 框,键入 credssp.dll 。 留下特定于其他 SSP,任何数据,然后单击 确定 。   
8. exit Registry Editor。   
9. 请重新启动计算机。.
  
按KB操作,在XP的远程桌面中看到了支持网络级身份验证。


输入vista 主机的IP,哎,有了,要求身份验证:


很不幸,发生身份验证错误:发生身份验证错误(代码:0x80090303)

再次向微软工程师,工程师也不知道具体所在,但是提供了一些排错方法,最后是通过抓取网络包来排查故障,发现是因为我在进行远程连接的时候输入的是IP地址,而不是计算机名(VISTA加入了域,XP未加域,而且XP的DNS与VISTA的不同,不在同一个网段),导致Kerberos验证失败。在HOST文件中加入域控和vista机器的域名解析,终于连接成功。
  我对为什么要输入计算机名而不是IP大惑不解,因为我们通常都是用ip来连接目标主机的,工程师给出的答复是:
  这也是kerberos验证的特性决定的. 要进行kerberos的验证, 要用到SPN (service principle name). 而 SPN都是用计算机名称注册的. 所以我们必须使用计算机名称来连接Windows Vista, 而 不能使用IP地址.
  虽然我不是很了解,但是这个问题算是结了。

2009年2月16日星期一

Vista一键还原(Vista Ghost)1.36 简体中文免费版下载

Vista下最好用的一键还原软件

稳定,快速,有保障!

Vista一键还原(Vista Ghost)1.36 简体中文免费版下载 点击下载

软件介绍:

1、专业:支持所有版本Vista操作系统(含双系统)进行一键备份和一键还原
2、稳健:不写入分区表任何数据,安全备份,不损害任何硬盘数据 (特别提示:因为不写入分区表,所以无法支持开机快捷键,此功能等大家决定)
3、简易:少到不能再少的选项,傻瓜化安装,傻瓜化操作,傻瓜化卸载,自动化。
4、强悍:以Ghost 为核心功能,数十次操作命令全面进行批处理集成
5、免费:依然是免费软件,和Vista优化大师一样,中文版用户免费使用
6、省心:设有论坛专区进行交流互动,最快速解决您的问题

推荐Vista优化大师3.36版下载

推荐Vista优化大师3.36版下载


Vista优化大师简介:Vista 优化大师(Vista Master),微软Windows Vista系统优化中的瑞士军刀,中国国内第一个专业优化微软Windows Vista的超级工具,当然,也是最好的Vista优化设置和管理软件!Vista优化大师给您带来什么:1.超快:加速Windows Vista的系统启动速度、软件执行速度、上网浏览速度、开关机速度等等; 2.超值:本软件为免费授权正式版本,不用四处找注册版和破解版了;3.超炫:超过100多个系统设置选项,1分钟成为Vista系统专家; 4.超易:所有操作,用鼠标点点选选,即可完成,更可轻松恢复到Vista默认设置;5.超强:系统安全设置,防入侵设置等等,给你的Vista加把安全之锁;6.更多:关注Vista优化大师的每次升级,必将给您带来更多的便利和惊喜!

下载地址:
Vista优化大师3.36正式版发布,增Windows Mail管理

2009年2月14日星期六

DiskPart 命令行选项

DiskPart 命令行选项


DiskPart 是一个 Windows Vista、Windows® XP 和 Windows Server 2003® 家族中的文本模式命令解释程序。使用此工具,可以通过使用脚本或直接在命令提示符下输入来管理对象(磁盘、分区或卷)。
DiskPart 命令
在磁盘、分区或卷上使用 DiskPart 命令前,必须首先列出对象,然后选中该对象。选中对象时,键入的所有 DiskPart 命令都适用于该对象。
通过使用 list disk、list volume 和 list partition 命令,可以列出可用的对象并确定对象的编号或驱动器号。list disk 命令和 list volume 命令会显示计算机上的所有磁盘和卷。但是,list partition 命令只显示磁盘上选中的分区。使用 list 命令时,选中的对象旁边会显示一个星号 (*)。按对象的编号或驱动器号对其进行选择,例如,磁盘 0、分区 1、卷 3 或卷 C。
选择对象时,焦点一直停留在该对象上,直至选择其他对象。例如,如果焦点设置在磁盘 0 上,然后选择磁盘 2 上的卷 8,焦点就从磁盘 0 转移到磁盘 2 上的卷 8。某些命令会自动更改焦点。例如,创建新分区时,焦点会自动移至新分区。
只能将焦点放在已选中磁盘上的某个分区。选中某个分区时,也会选中相关的卷(如果有)。选中某个卷时,如果该卷映射到单个特定分区,则也会选中相关的磁盘和分区。如果情形不是如此,则该磁盘和分区上的焦点就会消失。
要点
将 DiskPart 命令用作脚本的一部分时,建议将所有 DiskPart 操作一起作为单个 DiskPart 脚本的一部分来完成。可以运行连续的 DiskPart 脚本,但是在脚本之间必须至少有 15 秒的时间,以便让前一个执行的脚本完全结束,然后在后续的脚本中再次运行 DiskPart 命令。否则,连续脚本可能会运行失败。可以在连续的 DiskPart 脚本之间添加暂停,方法是将超时 /t 15 命令与 DiskPart 脚本一起添加到批处理文件中。
有关 DiskPart 的详细信息,请参阅 Microsoft TechNet 网站上的磁盘管理。




DiskPart 语法和参数
下表列出了 DiskPart 命令的语法和参数。

命令
语法
描述

active
active
在基本磁盘上,将选中的分区标记为活动的。对于基本输入/输出系统 (BIOS) 或可扩展固件接口 (EFI),该操作表明该分区或卷是有效的系统分区或系统卷。
只有分区才可以标记为“活动的”。
要点
DiskPart 验证是否只有该分区才可以包含操作系统的启动文件。DiskPart 不检查分区内容。如果将某个分区标记为“活动的”,并且它不包含操作系统的启动文件,则您的计算机可能无法启动。

add disk
add disk=n [noerr]
将选中的简单卷镜像到指定磁盘。此命令在 Windows Vista 上无效。
n
指定要包含镜像的磁盘。只能镜像简单卷。指定磁盘的未分配空间必须至少与要镜像的简单卷的大小相同。
noerr
仅用于脚本。当出现错误时,指定 DiskPart 继续处理命令,就像未发生错误一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。

assign
assign [{letter=dmount=path}] [noerr]
给选中的卷分配一个驱动器号或装入点。如果未指定驱动器号或装入点,则会分配下一个可用的驱动器号。如果已分配的驱动器号或装入点已在使用中,则会产生错误。
通过使用 assign 命令,可以更改与可移动驱动器关联的驱动器号。
不能将驱动器号分配给系统卷、启动卷或包含页面文件的卷。另外,不能将驱动器号分配给原始设备制造商 (OEM) 分区或除基本数据分区以外的任何 GPT 分区。
letter=d
指定要分配给卷的驱动器号。
mount=path
指定要分配给卷的装入点路径。
noerr
仅用于脚本。发生错误时,指定该 DiskPart 继续处理命令,就如同该错误未发生一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出并提供一个错误代码。

attributes
attributes volume [{set clear}] [{hidden readonly nodefaultdriveletter shadowcopy}] [noerr]
volume
显示选中卷的属性。
set
设置选中卷上的指定属性(hidden、read-only、nodefaultdriveletter 或 shadowcopy 卷)。
clear
清除选中卷上的指定属性(hidden、read-only、nodefaultdriveletter 或 shadowcopy 卷)。
hidden
指定该卷为隐藏状态。
readonly
指定该卷为只读状态。
nodefaultdriveletter
指定该卷在默认情况下不会接收驱动器号。
shadowcopy
指定该卷是一个卷影副本卷。
noerr
仅用于脚本。出现错误时,DiskPart 继续处理命令,如同错误没有发生一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出并提供一个错误代码。

automount
automount [enable] [disable] [scrub] [noerr]
启用状态下(默认),Windows 会在将新的基本卷添加到系统之后,自动安装其文件系统,然后再向该卷分配驱动器号。在系统区域网络配置中,禁用 automount 会防止 Windows 自动安装添加到系统中的任何新基本卷或向其分配驱动器号。
enable
Windows 可以自动安装添加到系统的新基本卷并为它们分配驱动器号。
disable
防止 Windows 自动安装添加到系统中的任何新基本卷。
scrub
删除不再位于系统中的卷的卷装入点目录和注册表设置。该操作防止自动装入已经位于系统中的卷,并防止在其重新添加到系统时给定以前的卷装入点。
noerr
仅用于脚本。发生错误时,指定该 DiskPart 继续处理命令,就如同该错误未发生一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出并提供一个错误代码。

break disk
break disk=n [nokeep] [noerr]
仅适用于动态磁盘。将选中的镜像卷分为两个简单卷。一个简单卷保留驱动器号和镜像卷的所有装入点;另一个简单卷保持选中以便可以分配给它一个驱动器号。
默认情况下,会保留镜像的两半内容,每一半成为一个简单卷。如果使用 nokeep 参数,将只保留镜像的一半作为简单卷,同时删除另一半并转变为可用空间。未选中任何卷。
n
指定包含镜像卷的磁盘。
nokeep
指定只保留一个镜像的卷。删除另一个简单卷并转变为可用空间。未选中任何卷。
noerr
仅用于脚本。当出现错误时,指定 DiskPart 继续处理命令,就像未发生错误一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。

clean
clean [all]
从选中的磁盘中删除所有分区或卷格式。在主启动记录 (MBR) 磁盘中,只覆盖 MBR 分区信息和隐藏的扇区信息。在 GUID 分区表 (GPT) 磁盘上,会覆盖 GPT 分区信息,其中包括保护性 MBR。不存在任何隐藏扇区信息。
all
指定磁盘上的每个扇区都归零(该操作会完全删除包含在磁盘上的所有数据)。
convert basic
convert basic [noerr]
将空的动态磁盘转换为基本磁盘。
要点
若要将磁盘转换成基本磁盘,该磁盘必须为空。转换磁盘之前,请备份数据,然后删除全部分区或卷。
noerr
仅用于脚本。当出现错误时,指定 DiskPart 继续处理命令,就像未发生错误一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。

convert dynamic
convert dynamic [noerr]
将基本磁盘转换为动态磁盘。磁盘上的所有现有分区成为简单卷。
noerr
仅用于脚本。当出现错误时,指定 DiskPart 继续处理命令,就像未发生错误一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。
convert gpt
convert gpt [noerr]
在基于 Itanium 的计算机上,将具有主启动记录 (MBR) 分区形式的空白基本磁盘转换为具有 GUID 分区表 (GPT) 分区形式的基本磁盘。
要点
磁盘必须为空盘才能将其转换为 GPT 磁盘。转换磁盘之前,请备份数据并删掉所有分区或卷。
noerr
仅用于脚本。当出现错误时,指定 DiskPart 继续处理命令,就像未发生错误一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。

convert mbr
convert mbr [noerr]
在基于 Itanium 的计算机上,将具有 GUID 分区表 (GPT) 分区形式的空白基本磁盘转换为具有主启动记录 (MBR) 分区形式的基本磁盘。
要点
磁盘必须为空盘才能将其转换为 MBR 磁盘。转换磁盘之前,请备份数据并删除所有分区或卷。
noerr
仅用于脚本。发生错误时,指定该 DiskPart 继续处理命令,就如同该错误未发生一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出并提供一个错误代码。

create partition efi
create partition efi [size=n] [offset=n] [noerr]
在基于 Itanium 的计算机上,在 GUID 分区表 (GPT) 磁盘上创建可扩展固件接口 (EFI) 系统分区。创建分区后,将选中该新分区。
size=n
指定分区的大小,以兆字节 (MB) 为单位。如果未给出分区大小,则分区会一直继续,直至当前区域中没有可用空间为止。
offset=n
指定创建分区的字节偏移量。如果未给出偏移量,则将分区放置在能容纳它的第一个磁盘区域中。
noerr
仅用于脚本。发生错误时,指定该 DiskPart 继续处理命令,就如同该错误未发生一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出并提供一个错误代码。

create partition extended
create partition extended [size=n] [offset=n] [noerr]
在当前驱动器上创建扩展分区。创建分区之后,焦点会自动转移到新分区上。每个磁盘上只能创建一个扩展分区。如果试图在其他扩展分区内创建扩展分区,则此命令会失败。创建逻辑驱动器之前,必须创建扩展分区。
size=n
指定扩展分区的大小,以兆字节 (MB) 为单位。如果没有给定大小,则分区会一直继续,直到区域中没有可用空间为止。该大小是按柱面取整的;即大小被近似为最接近的柱面边界。例如,如果指定了 500 MB 的大小,则分区大小将向上舍入为 504 MB。
offset=n
仅适用于主启动记录 (MBR) 磁盘。指定创建扩展分区的字节偏移量。如果没有给定偏移量,则分区将从磁盘上第一个可用空间区域的起始处开始。偏移量是按柱面取整的;即偏移量被近似为最接近的柱面边界。例如,如果指定偏移量为 27 MB,柱面大小为 8 MB,则偏移量被近似为 24 MB 边界。
noerr
仅用于脚本。发生错误时,指定该 DiskPart 继续处理命令,就如同该错误未发生一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出并提供一个错误代码。

create partition logical
create partition logical [size=n] [offset=n] [noerr]
在扩展分区中创建逻辑驱动器。创建分区之后,焦点就自动转移到新逻辑驱动器上。
size=n
逻辑驱动器的大小以兆字节 (MB) 为单位。如果没有给定大小,则分区将一直继续,直到当前区域中没有可用空间为止。
offset=n
仅适用于主启动记录 (MBR) 磁盘。指定创建逻辑驱动器的字节偏移量。偏移量是按柱面取整的。即偏移量被近似为较大的值,以占满所使用的全部柱面。如果未给出偏移量,则将该分区放置在可以足够容纳它的第一个磁盘区域中。分区的字节数至少应等于 size=n 指定的数量。如果指定逻辑驱动器的大小,它必须小于扩展分区。
noerr
仅用于脚本。发生错误时,指定该 DiskPart 继续处理命令,就如同该错误未发生一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出并提供一个错误代码。

create partition msr
create partition msr [size=n] [offset=n] [noerr]
在基于 Itanium 的计算机上,在 GUID 分区表 (GPT) 磁盘上创建 Microsoft 保留 (MSR) 分区。
警告
使用 create partition msr 命令时要小心。GPT 磁盘要求特定的分区布局,因此创建 Microsoft 保留分区可能导致磁盘不可读。在用于启动 Windows XP 64 位版本或 Windows Server 2003 家族 64 位版本的 GPT 磁盘上,EFI 系统分区是磁盘上的第一个分区,随后是 Microsoft 保留分区。仅用来储存数据的 GPT 磁盘没有 EFI 系统分区。Microsoft 保留分区是第一个分区。
Windows XP 和 Windows Server 2003 家族不装入 Microsoft 保留分区。不能在其中存储数据,也不能将其删除。
size=n
指定分区的大小,以兆字节 (MB) 为单位。分区的字节数至少应等于 size=n 指定的数量。如果未给出分区大小,则分区会一直继续,直至当前区域中没有可用空间为止。
offset=n
指定创建分区所用的字节偏移量。分区将以 offset=n 指定的字节偏移量开始。偏移量将按扇区取整,即偏移量被近似为较大的值,以占满所使用的全部扇区。如果未给出偏移量,则将该分区放置在可以足够容纳它的第一个磁盘区域中。
noerr
仅用于脚本。发生错误时,指定该 DiskPart 继续处理命令,就如同该错误未发生一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出并提供一个错误代码。
create partition primary
create partition primary [size=n] [offset=n] [ID={byteGUID}] [align=n][noerr]
在当前基本磁盘上创建主要分区。创建分区之后,焦点就自动转移到新分区上。分区不会接收到驱动器号,必须使用 assign 命令给分区分配驱动器号。
size=n
指定分区的大小,以兆字节 (MB) 为单位。如果未给出分区大小,则分区会一直继续,直至当前区域中没有未分配空间为止。该大小是按柱面取整的;即大小被近似为最接近的柱面边界。例如,如果指定了 500 MB 的大小,则分区大小将向上舍入为 504 MB。
offset=n
指定创建分区所用的字节偏移量。如果没有给定偏移量,则分区将从磁盘上第一个可用空间区域的起始处开始。对于主启动记录 (MBR) 磁盘,偏移量按柱面取整;即偏移量被近似为最接近的柱面边界。例如,如果指定偏移量为 27 MB,柱面大小为 8 MB,则偏移量近似为 24 MB 边界。
ID={byteGUID}
仅用于 OEM。
警告
使用此参数创建分区可能导致计算机崩溃或无法启动。如果不是 OEM 或对 GPT 磁盘具有丰富经验的 IT 专业人员,请不要通过使用 ID=byte GUID 参数在 GPT 磁盘上创建分区。请始终使用 create partition efi 命令来创建 EFI 系统分区,使用 create partition msr 命令来创建 Microsoft 保留分区,并使用 create partition primary 命令(没有 ID=byte GUID 参数)来创建 GPT 磁盘上的主要分区。
align= n
通常与硬件 RAID 逻辑单元号 (LUN) 阵列一起使用,以便在逻辑单元 (LU) 无法与柱面对齐的情况下提高性能。对齐磁盘开始处未实现柱面对齐的主要分区,将偏移量近似为最接近的对齐边界,其中 n 是从磁盘开始处到最接近的对齐边界的千字节 (KB) 数。如果主要分区不在磁盘开始处,则 align= n 命令无效。如果与 offset= n 一起使用,则偏移量在磁盘上第一个可用的柱面内。
noerr
仅用于脚本。当出现错误时,指定 DiskPart 继续处理命令,就像未发生错误一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。
注释
若要在 GPT 磁盘上分配一个 OEM 分区,请生成一个 OEM-GUID:
使用下列命令创建一个 EFI 分区:
create partition efi size=n
使用下列命令创建一个主分区:
create partition primary size=n ID={byteGUID}
使用下列命令创建一个 MSR 分区:
create partition MSR size=n
要点
必须在 EFI 分区和 MSR 分区之间创建 OEM 分区。
切勿将 LDM 元数据分区或 LDM 数据分区显式创建为分区。相反,请将磁盘转换为动态磁盘。
对于主启动记录 (MBR) 磁盘,可以为分区指定一个十六进制格式的分区类型字节。如果不在 MBR 磁盘上指定分区类型字节,则 create partition primary 命令会创建一个类型为 0x6 的分区。任何分区类型字节都可以用 ID=byte GUID 参数指定。DiskPart 不会验证分区类型的有效性,也不会验证 ID 参数。
对于 GPT 磁盘,可以为创建的分区指定分区类型 GUID。
EFI 系统分区:c12a7328-f81f-11d2-ba4b-00a0c93ec93b
Microsoft 保留分区:e3c9e316-0b5c-4db8-817d-f92df00215ae
基本数据分区:ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
动态磁盘上的 LDM 元数据分区:5808c8aa-7e8f-42e0-85d2-e1e90434cfb3
动态磁盘上的 LDM 数据分区:af9b60a0-1431-4f62-bc68-3311714a69ad
如果不指定分区类型 GUID,create partition primary 命令会创建一个基本数据分区。任何分区类型都可以用 ID=byte GUID 参数指定。DiskPart 不会验证分区 GUID 的有效性,也不会验证 ID 参数。

create volume raid
create volume raid [size=n] [disk=n,n,n[,n,…]] [noerr]
在三个或更多的指定动态磁盘上创建 RAID-5 卷。创建卷完成后,焦点会自动移到新卷。此命令在 Windows Vista 上无效。
size=n
指定该卷在每个磁盘上占用的磁盘空间量,单位为兆字节 (MB)。如果未指定大小,则会创建尽可能大的 RAID-5 卷。具有最小可用连续空间的磁盘决定 RAID-5 卷的大小并从每个磁盘分配相同的空间量。RAID-5 卷中可使用磁盘空间的实际容量小于磁盘空间的总容量,因为某些磁盘空间需要用于奇偶校验。
disk=n,n,n[,n,…]
指定在其上创建卷的动态磁盘。若要创建一个 RAID-5 卷,至少需要三个动态磁盘。每个磁盘都分配出 size=n 的空间大小。
noerr
仅用于脚本。当出现错误时,指定 DiskPart 继续处理命令,就像未发生错误一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。

create volume simple
create volume simple [size=n] [disk=n] [noerr]
创建简单卷。创建卷完成后,焦点会自动移到新卷。Windows Vista Starter、Windows Vista Home Basic、Windows Vista Home N 以及 Windows Vista Business 操作系统均不支持动态磁盘。
size=n
指定卷的大小,以兆字节 (MB) 为单位。如果未指定卷大小,新建的卷就占用磁盘上剩余的可用空间。
disk=n
指定在其上创建卷的动态磁盘。如果不给定磁盘,则使用当前磁盘。
noerr
仅用于脚本。当出现错误时,指定 DiskPart 继续处理命令,就像未发生错误一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。

create volume stripe
create volume stripe [size=n] [disk=n,n[,n,…]] [noerr]
通过使用两个或更多指定的动态磁盘来创建带区卷。创建卷完成后,焦点会自动移到新卷。Windows Vista Starter、Windows Vista Home Basic、Windows Vista Home N 以及 Windows Vista Business 操作系统均不支持动态磁盘。
size=n
指定该卷在每个磁盘上占用的磁盘空间量,单位为兆字节 (MB)。如果没有指定大小,新建卷将占据最小磁盘上的剩余可用空间以及其他磁盘上相同大小的空间。
disk=n,n[,n,…]
指定在其上创建卷的动态磁盘。若要创建一个带区卷,需要至少两个动态磁盘。每个磁盘都分配出 size=n 的空间大小。
noerr
仅用于脚本。当出现错误时,指定 DiskPart 继续处理命令,就像未发生错误一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。

delete disk
delete disk [noerr] [override]
从磁盘列表删除丢失的动态磁盘。
noerr
仅用于脚本。发生错误时,指定该 DiskPart 继续处理命令,就如同该错误未发生一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出并提供一个错误代码。
override
允许 DiskPart 删除磁盘上的所有简单卷。如果磁盘上包含半个镜像卷,则磁盘上的这半个镜像将被删除。如果磁盘是 RAID-5 卷的一个成员,则 delete disk override 命令无效。

delete partition
delete partition [noerr] [override]
在基本磁盘上,删除选中的分区。不能删除系统分区、启动分区或任何包含活动页面文件或故障转储(内存转储)的分区。
警告
删除动态磁盘上的分区会删除磁盘上的所有动态卷,因而会破坏所有数据并会使磁盘处于损坏状态。若要删除动态卷,请始终使用 delete volume 命令。
可以从动态磁盘删除分区,但禁止创建分区。例如,可以删除动态 GPT 磁盘上的未识别的 GUID 分区表 (GPT) 分区。然而,删除这样的分区不会使由此而得的可用空间变得可用。此命令特别用于在 clean 命令无法使用的紧急情况下回收已损坏的脱机动态磁盘上的空间。
noerr
仅用于脚本。当遇到错误时,指定 DiskPart 继续处理命令,就像错误从来没有发生一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出并提供一个错误代码。
override
允许 DiskPart 删除任何类型的分区。通常,DiskPart 只允许删除已知的数据分区。

delete volume
delete volume [noerr]
删除选中的卷。无法删除系统卷、启动卷以及任何包含活动页面文件或故障转储(内存转储)的卷。
noerr
仅用于脚本。当出现错误时,指定 DiskPart 继续处理命令,就像未发生错误一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。

detail disk
detail disk
显示选中磁盘的属性和该磁盘上的卷。

detail partition
detail partition
显示选中分区的属性。

detail volume
detail volume
显示当前卷所在的磁盘。

exit
exit
退出 DiskPart 命令解释程序。

extend
extend [size=n] [disk=n] [noerr]
将选中的卷扩充到下一连续的未分配空间。对于基本卷,未分配的空间与选中的分区必须在同一磁盘,并且必须跟随该分区(具有比选中的分区更高的扇区偏移量)。可以将动态卷、简单卷或跨区卷扩展为任意动态磁盘上的任意可用空间。通过使用此命令,可以将现有卷扩展为新建空间。
如果以前是使用 NTFS 文件系统格式化分区,则文件系统会自动扩展以占用更大的分区。不会发生数据丢失。如果分区以前通过非 NTFS 的文件系统格式进行格式化,此命令就会失败,并不对分区做任何更改。
不能扩充当前系统分区或启动分区。
size=n
指定要添加到当前分区中的空间大小(以 MB 为单位)。如果不指定大小,磁盘就扩展为占用所有紧接的下一个未分配空间。
disk=n
指定在其上扩展卷的动态磁盘。将在磁盘上分配 size=n 的磁盘空间。如果不指定磁盘,将在当前磁盘上扩充卷。
noerr
仅用于脚本。当出现错误时,指定 DiskPart 继续处理命令,就像未发生错误一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。

filesystems
filesystems
显示卷上的受支持的当前文件系统。必须选择卷,此操作才能成功。

format
format [{[FS=] [REVISION=] RECOMMENDED}] [LABEL=<"label">] [UNIT=] [QUICK] [COMPRESS] [OVERRIDE] [NOWAIT] [NOERR]
对卷或分区进行格式化。必须选择卷,此操作才能成功。
FS=
指定文件系统的类型。如果未提供文件系统,则将使用 FILESYSTEMS 命令所显示的默认文件系统。
REVISION =
指定文件系统版本(如果适用)。
RECOMMENDED
如果指定此参数,请使用建议的文件系统和版本,而不是默认值(如果建议值存在)。建议的文件系统(如果存在)由 FILESYSTEMS 命令显示。
LABEL=<"label">
指定卷标。
UNIT=
替代默认分配单元大小。强烈建议在一般情况下使用默认设置。特定文件系统的默认分配单元大小由 FILESYSTEMS 命令显示。
高于 4096 的分配单元大小不支持 NTFS 压缩。
QUICK
执行快速格式化。
COMPRESS
仅限 NTFS:默认情况下将压缩在新卷上创建的文件。
OVERRIDE
首先强制该卷卸载(如有必要)。所有指向该卷的打开的句柄将不再有效。
NOWAIT
强制该命令在格式化过程仍在进行的同时立即返回。如果未指定 NOWAIT,则 DiskPart 将以百分比形式显示格式化进度。
NOERR
仅用于脚本。出现错误时,DiskPart 继续处理命令,就像未发生错误一样。如果没有 NOERR 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。
示例:
FORMAT FS=NTFS LABEL="New Volume" QUICK COMPRESS
FORMAT RECOMMENDED OVERRIDE

gpt attributes
gpt attributes= n
在基本 GPT 磁盘上,给选中的分区分配 GPT 属性。GPT 分区属性指定有关使用分区的其他信息。一些属性特定于分区类型 GUID。
要点
更改 GPT 属性可能会导致基本数据卷无法安装或无法为其指定驱动器号。除非您是 OEM 或具有丰富 GPT 磁盘经验的 IT 专业人员,否则不要更改 GPT 属性。
n
适合要应用于选中分区的属性的十六进制。GPT 属性字段是包含两个子字段的 64 位字段。较大的字段只能在分区 ID 的上下文中解释, 而较小的字段常用于所有分区 ID。
所有分区都具有以下属性:
0x000000000000001 根据需要标记分区。这向所有磁盘管理实用程序表明禁止删除该分区。EFI 系统分区只包含启动操作系统所需的那些二进制。这样,OEM 或操作系统特定的二进制数据放在其他分区会变得更加容易。
对于基本数据分区,将定义以下属性:
0x8000000000000000 阻止自动给分区分配驱动器号。默认情况下,每一分区都被分配一个新驱动器号。设置此属性可以确保将磁盘移到新计算机时,不会自动生成新驱动器号。用户可以手动分配驱动器号。
注意
可以随时添加其他属性。

help
help
显示可用命令的列表。

import
import [noerr]
将外部磁盘组导入本地计算机的磁盘组。import 命令导入与选中磁盘在同一个组的每个磁盘。
noerr
仅用于脚本。当遇到错误时,指定 DiskPart 继续处理命令,就像错误从来没有发生一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出并提供一个错误代码。

inactive
inactive
在基本主启动记录 (MBR) 磁盘上,将选中的系统分区或启动分区标记为非活动的。重新启动计算机时,计算机从 BIOS 中指定的下一个选项启动,例如,CD-ROM 驱动器或基于预启动执行环境 (PXE) 的启动环境(例如远程安装服务 (RIS))。
警告
若没有活动分区,计算机可能不会启动。除非您是一个对 Windows Server 2003 家族有深入了解的有经验用户,否则,请不要将系统分区或启动分区标记为非活动的。
如果将系统分区或启动分区标记为非活动的后无法启动计算机,则请将安装 CD 插入 CD-ROM 驱动器,重新启动计算机,然后通过在“恢复控制台”中使用 Fixmbr 和 Fixboot 命令来修复分区。

list disk
list disk
显示一系列磁盘及其信息,如磁盘大小、可用空间、磁盘是基本磁盘还是动态磁盘,以及该磁盘使用的分区形式是主启动记录 (MBR) 还是 GUID 分区表 (GPT)。选中的磁盘带有星号 (*)。

list partition
list partition
显示当前磁盘的分区表中列出的分区。在动态磁盘上,这些分区可能与磁盘上的动态卷不对应。出现这种不一致的原因是动态磁盘在分区表中包含用于系统卷或启动卷的项(如果磁盘上有的话)。动态磁盘还包括一个占据磁盘剩余部分的分区,并保留空间以备动态卷使用。

list volume
list volume
显示所有磁盘上的一系列基本卷和动态卷。

online
online [noerr]
将选中的脱机磁盘或卷联机。重新同步选中的镜像卷或 RAID-5 卷。
noerr
仅用于脚本。当出现错误时,指定 DiskPart 继续处理命令,就像未发生错误一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。

rem
rem
提供一种向脚本添加注释的方法。例如:rem These commands set up 3 drives.
create partition primary size=2048
assign d:
create partition extend
create partition logical size=2048
assign e:
create partition logical
assign f:
remove
remove [{letter=dmount=path[all]}] [dismount][noerr]
从选中的卷删除驱动器号或装入点。如果使用了 all 参数,就会删除所有当前驱动器号和装入点。如果不指定驱动器号或装入点,则 DiskPart 将删除它遇到的第一个驱动器号或装入点。
可以使用 remove 命令更改与可移动驱动器相关的驱动器号。不能删除系统卷、启动卷或页面卷的驱动器号。另外,不能删除如下分区的驱动器号:OEM 分区、任何具有未识别的 GUID 的 GPT 分区或任何特殊的、非数据的 GPT 分区(例如,EFI 系统分区)。
letter=d
指定要删除的驱动器号。
mount=path
指定要删除的装入点路径。
all
删除所有当前的驱动器号和装入点。
dismount
当所有驱动器号和装入点都已经从卷中删除之后卸除基本卷,并让基本卷脱机,使它无法安装。如果其他进程正在使用该卷,则在卸除该卷之前,DiskPart 将关闭所有打开的句柄。通过为该卷分配驱动器号或创建到该卷的装入点路径可以使该卷处于可装入状态。如果使用的卷上具有任何剩余的驱动器号或装入点,则 Dismount 无效。对于脚本,建议使用 removeall dismount。
noerr
仅用于脚本。当遇到错误时,指定 DiskPart 继续处理命令,就像错误从来没有发生一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出并提供一个错误代码。

repair disk
repair disk=n [noerr]
通过用指定的动态磁盘替换失效的 RAID-5 成员来修复选中的 RAID-5 卷。指定的动态磁盘中的可用空间大小必须大于或等于失效的 RAID-5 成员的总大小。
n
指定用来替换失效的 RAID-5 成员的动态磁盘。指定的动态磁盘中的可用空间大小必须大于或等于失效的 RAID-5 成员的总大小。
noerr
仅用于脚本。出现错误时,DiskPart 继续处理命令,就像错误没有发生过一样。如果没有 noerr 参数,则错误会导致 DiskPart 退出并提供一个错误代码。

rescan
rescan
查找可能已添加到计算机的新磁盘。

retain
retain
准备现有的动态简单卷以将其用作启动卷或系统卷。
在选中的动态简单卷上的主启动记录 (MBR) 中创建分区项,适用于基于 x86 的计算机。若要创建 MBR 分区,动态简单卷必须从按柱面对齐的偏移量开始,并且其大小是柱面的倍数。
在选中的动态简单卷的 GUID 分区表 (GPT) 中创建分区项,用在基于 Itanium 的计算机上。
注意
retain 命令仅限于在无人参与安装过程中使用,或由 OEM 使用。

select disk
select disk=[n]
选择指定的磁盘,并将焦点转移到此磁盘上。
n
指定接收焦点的磁盘的磁盘号。如果不指定磁盘号,select 命令将列出当前选中的磁盘。通过使用 list disk 命令可以查看计算机上所有磁盘的磁盘号。

select partition
select partition=[{nd}]
选择指定的分区,并给予其焦点。如果未指定分区,select 命令将列出选中的当前分区。通过使用 list partition 命令可以查看当前磁盘上的所有分区号。
n
指定接收焦点的分区号。
d
指定接收焦点分区的驱动器号或装入点路径。

select volume
select volume=[{nd}]
选择指定的卷并将焦点转移给它。如果不指定卷,select 命令将列出选中的当前卷。可以按编号、驱动器号或装入点路径指定卷。在基本磁盘上,选择卷同时会给予相应分区焦点。通过使用 list volume 命令可以查看计算机上的所有卷的编号。
n
指定接收焦点的卷号。
d
指定接收焦点卷的驱动器号或装入点路径。

setid
set id={ } [OVERRIDE] [NOERR]
更改分区类型。仅限原始设备制造商 (OEM) 使用。必须选择分区,此操作才能成功。
ID={ }
指定新的分区类型。对于主启动记录 (MBR) 磁盘,可以为分区指定一个十六进制格式的分区类型字节。可以使用此参数指定任何分区类型字节,但类型 42(LDM 分区)除外。
对于 GUID 分区表 (GPT) 磁盘,可以为分区指定分区类型 GUID。
OVERRIDE
使 DiskPart 首先强制该卷卸载(如有必要)。所有指向该卷的打开的句柄将无效。
NOERR
仅用于脚本。出现错误时,DiskPart 继续处理命令,就像未发生错误一样。如果没有 NOERR 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。
警告:使用此参数更改分区类型字段可能导致计算机出现故障或无法启动。除非您是 OEM 或具有丰富 GPT 磁盘经验的 IT 专业人员,否则不要使用此参数更改 GPT 磁盘上的分区类型字段。而应该在 GPT 磁盘上始终使用 CREATE PARTITION EFI 命令创建 EFI 系统分区,使用 CREATE PARTITION MSR 命令创建 Microsoft 保留分区,以及使用不带 ID 参数的 CREATE PARTITION PRIMARY 命令创建主分区。
此命令在动态磁盘或 Microsoft 保留分区上不起作用。
示例:
SET ID=07 OVERRIDE
SET ID=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7

shrink
shrink [DESIRED=] [MINIMUM=] [NOWAIT] [NOERR]
shrink QUERYMAX [NOERR]
将所选卷的大小减少指定的量。从该卷末尾的未使用空间获得可用磁盘空间。必须选择卷,此操作才能成功。
DESIRED=
指定希望该卷大小减少的空间量 (MB)。如果未指定所需的量,则该卷减少的量等于该卷上的最大可用空间量。
MINIMUM=
指定该卷大小减少的最小空间量 (MB)。
QUERYMAX
返回该卷可减少的最大字节数(卷上的可用空间)。如果应用程序当前正在访问卷,则此值可能会发生变化。
NOWAIT
强制该命令在收缩过程仍在进行的同时立即返回。
NOERR
仅用于脚本。出现错误时,DiskPart 继续处理命令,就像未发生错误一样。如果没有 NOERR 参数,则错误会导致 DiskPart 退出,并显示一个错误代码。
如果未指定 MINIMUM 量,则该卷将减少 DESIRED 量(如果已指定)或该卷上可用空间的最大量。如果指定了 MINIMUM 量,但没有足够的可用空间,则该命令将失败。
此命令在基本卷以及简单或跨区动态卷上有效。只有在使用 NTFS 文件系统格式化该卷或该卷上没有文件系统时,才能减少卷的大小。
示例:
SHRINK DESIRED=500 MINIMUM=250
SHRINK QUERYMAX
Diskpart 脚本
通过使用 DiskPart 命令行选项 命令行工具,可以创建脚本来自动化与磁盘相关的任务,例如创建卷或将磁盘转换为动态磁盘。如果是使用无人参与安装或 Sysprep(它们不支持创建除启动卷以外的卷)部署 Windows,则创建执行这些任务的脚本非常有用。
有关 DiskPart 脚本的详细信息,请参阅 Microsoft Windows XP Professional 资源工具包中的“磁盘管理”。
若要启动 DiskPart 脚本,请在命令提示符下键入以下内容:
diskpart /s scriptname.txt
其中,scriptname 是包含脚本的文本文件的名称。
若要将 DiskPart 的脚本输出重定向到某个文件,请键入以下内容:
diskpart /s scriptname.txt > logfile.txt
其中,logfile 是记录 DiskPart 输出的文本文件的名称。
启动 DiskPart 时,DiskPart 版本和计算机名称将在命令提示符中显示。默认情况下,如果 DiskPart 在尝试执行脚本任务时发生错误,则 DiskPart 停止处理脚本并显示错误代码(除非指定了 noerr 参数)。但是,当 DiskPart 遇到语法错误时,不管是否使用 noerr 参数,它总是返回错误。noerr 参数允许您执行有用的任务,例如用简单的脚本删除所有磁盘的所有分区而不管磁盘的总数。
下表列出了 DiskPart 错误代码。

错误
描述
0
没有错误出现。成功运行整个脚本。
1
出现异常情况。可能出现了严重问题。
2
为 DiskPart 命令指定的参数不正确。
3
DiskPart 不能打开指定的脚本或输出文件。
4
DiskPart 使用的某项服务返回一个失败。
5
出现一个命令语法错误。脚本失败,因为不正确地选择了对象或对象不能与此命令一起使用。

2009年2月11日星期三

安装Ubuntu后修改系统启动顺序

安装Ubuntu后修改系统启动顺序

其实很简单,修改 /boot/grub/menu.lst 文件,使其中default值变动一下即可。

过程如下:
1、打开命令行终端;

2、输入:
sudo cp /boot/grub/menu.lst /boot/grub/menu.lst.bak
sudo gedit /boot/grub/menu.lst
注: 第一句做备份用。

3、假设文件内容如下:
-------------------------------------------------------------
# menu.lst - See: grub(8), info grub, update-grub(8)
# grub-install(8), grub-floppy(8),
# grub-md5-crypt, /usr/share/doc/grub
# and /usr/share/doc/grub-doc/.
## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not change this entry to 'saved' or your
# array will desync and will not let you boot your system.
default 0

## timeout sec # Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout 10

## hiddenmenu
# Hides the menu by default (press ESC to see the menu)
#hiddenmenu

## ## End Default Options ##

title Ubuntu, kernel 2.6.15-23-386
root (hd0,2)
kernel /boot/vmlinuz-2.6.15-23-386 root=/dev/hda3 ro quiet splash
initrd /boot/initrd.img-2.6.15-23-386
savedefault
boot

title Ubuntu, kernel 2.6.15-23-386 (recovery mode)
root (hd0,2)
kernel /boot/vmlinuz-2.6.15-23-386 root=/dev/hda3 ro single
initrd /boot/initrd.img-2.6.15-23-386
boot
title Ubuntu, memtest86+
root (hd0,2)
kernel /boot/memtest86+.bin
boot

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root
# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/hda1
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive chainloader +1
-------------------------------------------------------------
现在default值为0,意即启动排行第一的操作系统,这里代表的就是Ubuntu, kernel 2.6.15-23-386。 现在把它修改成“default 4”,那么XP就成为默认的操作系统了。 因为从零数起,以title打头的Microsoft Windows XP Professional这一行排序为4。当然要根据实际情况进行修改,有可能修改为5或6甚至其他数字。 另外我们还可以通过修改timeout的值来变更默认等待时间。

完美快速打造三系统(VISTA+LEOPARD10.5.2+UBUNTU8.04)(vista leopard双系统可参考)

完美快速打造三系统(VISTA+LEOPARD10.5.2+UBUNTU8.04)(vista leopard双系统可参考)

http://www.insanelymac.com/

0.准备:vista leoall3 ubuntu 三张盘
1.安装vista:如果自带vista,掠过(不影响后续操作)
2.分区:至少保证有两个分区 leopard必须独立在一个区中,ubuntu与vista可以共存于一个中(不建议),建议 如下:vista为主分区C:\ Mac OS X 一个分区 D:\(可以任何NTFS或FAT32格式) ubuntu为未分配分区分区工具:vista自带(电脑右击G-磁盘管理-)
3.安装leoall3:选择磁盘工具,将D抹掉 格式为 mac os (日志扩展式)自定义安装,请谨慎选择。不熟悉可以直接安装。注意:如果你只想装 vista和leopard,这样就可以的。他会自己引导的。
4.安装ubuntu:在选择分区时,选连续的为分配的空间,这样最方便。
5.引导ubuntu:下载boot_v8,官方下载地址:http://%3ca%20href=/解压,将boot_v8放到ubuntu的boot下codes:sudo cp ./boot_v8 /boot #注释:.表示你放boot_v8的路径
6.修改grub:codes:sudo gedit /boot/grub/menu.lst在最后添加title Mac OSX Leopardroot (hd0,1) #注释: 0表示第一块硬盘,1表示第二分区,一次类推kernel /boot/boot_v8boot

好!结束!
开机进入有可以直接 进入mac的引导。
输入80 如果对grub引导不熟悉,想学习可参考http://tech.ccidnet.com/pub/images/tech/linux/zhuanti/grub/index.htm如有什么疑惑,我尽力而为!来自http://bbs.kenapple.com/thread-4401-1-1.html

Windows Vista与Ubuntu Linux系统双启动

Windows Vista与Ubuntu Linux系统双启动

一、硬盘是全新的,先装了XP,然后装了Ubuntu,现在引导被grub抢了去,然后进入DOS键入fdisk /mbr,把引导全交给XP,修改boot.ini指向C盘的grub4dos,再将Ubuntu的/boot/grub/menu.lst复制到C:\,这样就做成了XP和Ubuntu双启动(ntldr引导grub4dos,然后grub4dos引导Ubuntu)以上操作没什么难度。主要是下面,Vista的bootmgr引导Ubuntu的grub。
首先进入WinPE,格式化C盘,安装Vista到C盘。重新启动之后,已经没有了Ubuntu的选项,只能进入Vista了。现在下载EasyBCD这个软件,截止到今天,最新版本是1.7.1,(http://neosmart.net/dl.php?id=1)。在Vista下安装并运行。选择“Add/Remove Entries”,在下面的“Add an Entries”面板中,选择“Linux”选项卡,Type是Grub,Name随便,Drive选择你安装Linux的/分区,再选中“GRUB isn't installed to the bootsector”复选框,最后点击“Add Entries”按钮。重启之后,便可出现Vista和Ubuntu的双启动菜单了。选择Ubuntu,进入Grub,下面的就明白了吧。

二、相信大家从XP的boot.ini都会引导linux,但是vista已经不再使用ntldr,所以有一些变化
1、把grub的引导扇区文件导出来。
在linux下
dd if=/dev/sda3 of=/dev/sda6/linuxloader/ubuntu.lnx bs=512 count=1
(我的GRUB安装在sda3上)
/dev/sda 表示从sata硬盘
ide的硬盘,用/dev/hda。具体情况视grub引导记录安装的位置而定
(这个和用XP的ntldr一样)
2、在vista下,
用治理员权限运行cmd,然后
bcdedit /create /d "Ubuntu 7.04" /application bootsector
建立一个名称为“Ubuntu 7.04”,通过加载类型为“引导扇区文件”的启动项
执行后,会返回一个{GUID},下面的命令用到这个{GUID}
bcdedit /set {GUID} device partition=E:
设置引导扇区文件所在的分区(就是这个ubuntu.lnx所在的分区)
bcdedit /set {GUID} path \linuxloader\ubuntu.lnx
指定引导扇区文件的路径和文件名(反斜杠\,表示根目录)
bcdedit /displayorder {GUID} /addlast
增加这个Ubuntu的菜单项到末尾。
重起你的vista

用u盘安装Windows 7

你可能想在上网本上安装Windows 7 但是上网本一般没有光驱,你很可能也没有为它另购外置光驱;另外你可能关注环保,不希望为下载的Windows 7其所长ISO刻盘;或者你不喜欢从光驱安装的龟速和折腾。反正,Windows 7支持从USB移动硬盘或闪存盘安装。
所需设备:

U盘,自备
Windows 7 Beta 1安装DVD ISO文件

准备U盘(建启动分区):
在一台运行Windows的计算机上插入U盘,打开一个管理员权限的命令行并输入:
C:\>diskpart
DISKPART> list disk 辨别分配给你的U盘编号,这里假设是2
DISKPART> select disk 2 (注意你的编号可能不是2)
DISKPART> clean
DISKPART> create partition primary
DISKPART> select partition 1
DISKPART> active
DISKPART> format fs=fat32
DISKPART> assign
DISKPART> exit
复制Windows 7安装文件到U盘
解开、刻录、或卦载你的Windows 7 DVD到某处,例如 x:\, 假设你的U盘是z:,然后:
C:\>xcopy x:\*.* /s/e/f z:\

从U盘安装
xcopy完成后,把U盘插到要装机的计算机上并重启。使用BIOS设置或按某个热键需选择从U盘启动。
然后按屏幕指示进行安装。

2009年2月10日星期二

在PII老本本上装XPEMSP2过程

在PII老本本上装XPEMSP2过程

本本型号是 富士通 FMV-6333NU4/W,配置:PII333,SD256,希捷20G.
装了很多次才成功,现将过程写一下,希望一些XPE新手可以少走弯路.(老手就不要看了,呵呵...)

能装成功的主要重点是先装上ACPI驱动.

过程准备工作:XPEMSP2 和 原版XP XP2安装盘,本本驱动.分二个以上的区,先在本本安装XP SP2和装好所有驱动.(要安装在除C区的其他区上,以便在装XPE时好找驱动文件.)
再用优化大师把本子的驱动备份下来,把备份好的所有驱动目录放在C区以外的区上面备用.
打开"系统"窗口,把硬件展开,用键盘的"PRINT SCREEN"键把所有硬件名的图片(BMP)保存在C区外的地方,在后面装XPE时可以核对.
跟着还原XPEMSP2的镜像,重启后等待...(确认硬盘没有动作时即表示自动搜索完成).跟着打开"系统"窗口查看驱动安装情况.
先装"COMPUTER"里面的ACPI:
展开 COMPUTER 在 "STANDARD PC" 上点右键点更新驱动程序-点"否"-下一步-点"从列表..."-下一步-选中"不要搜索..."-下一步-点"从硬盘安装"-点浏览后,找到刚才用优化大师备份好驱动的"Advanced Configuration and ... (ACPI) PC "目录-选择里面的"HAL.INF"点打开后即选中"STANDARD PC".安装这个驱动后重启.
重启后会再次自动搜驱动.等待...现在,打开"系统"驱动口即可看到又多了好几个没有安装驱动的硬件,包括电池等,跟着再安装没有找到驱动的硬件,过程跟上面的差不多,如有找不到文件,可到驱动备件目录里面找,也可到XP SP2安装盘上和到刚才装的那个原版SP2里找.
装硬件时最好打开刚才备份原版要SP2硬件图片(BMP)来参考.

在PE中添加sata,raid驱动的方法

在PE中添加sata,raid驱动的方法:
(这里以Intel Matrix Storage Manager driver为例,以便于说明,以下描述的驱动文件名只基于本实例,实际操作中的具体的文件名称以需要添加的具体驱动为准)

一. 准备材料:
1.原版驱动文件(见附件)
2.从PE中提取的txtsetup.sif文件

二. 从PE中提取txtsetup.sif文件:
先将PE中的winpe.is_重命名为winpe.cab,然后用RAR解压出winpe.iso 用UltraISO打开它,将txtsetup.sif提取出来,并用记事本打开备用。

三. 修改txtsetup.sif文件
1. 打开驱动包,里面有一个扩展名为“.inf”或“.oem”的小文件,如“oemsetup.inf”或者“txtsetup.oem”等(本例中为“txtsetup.oem”),用记事本打开备用;
2. 在txtsetup.sif中查找[SourceDisksFiles]字段,在其下添加iaStor.sys=1 4_,4,1 1,4
3. 查找[SCSI.Load]字段,在其下添加iaStor=iaStor.sys,4
4. 切换到刚才打开的txtsetup.oem,查找HardwareIds关键字,将该字段下的代码全部拷贝到txtsetup.sif文件的[HardwareIdsDatabase]字段末尾,但需要更改一下代码的格式,比如将id = "PCI\VEN_8086&DEV_27C3&CC_0104","iaStor"改为PCI\VEN_8086&DEV_27C3&CC_0104=iaStor
5. 查找[SCSI]字段,在其下添加iaStor="Intel(R) 82801FBM SATA AHCI Controller (Mobile ICH6M)" 至此,修改txtsetup.sif文件部分完成,将修改后的sif文件替换原来的文件。 四. 复制驱动文件 将驱动文件iaStor.sys用makecab.exe压缩成iaStor.sy_并添加到PE的system32\DRIVERS目录下,然后将修改后的winpe.iso用makecab.exe重新压缩成winpe.is_替换原来的文件。

至此整个添加驱动工作完成,重启动以测试成功与否。

PXE启动WinPE解决方案

PXE启动WinPE解决方案


1、PXE启动服务器的架设简单说来,PXE服务器就是DHCP服务器+TFTP服务器。网络启动过程大概是这样的(可能并不严谨):客户端发送动态获得IP地址的广播包到网络上,DHCP服务器在收到该广播包后,发送给客户端分配IP地址的回应包,客户端收到回应包后设置自己的IP地址,然后从DHCP服务器获得启动服务器的IP地址(DHCP服务器066选项,这就是TFTP服务器的IP地址)及启动文件名(DHCP服务器067选项,这里的启动文件名就是pxelinux.0或者支持pxe的grub4dos的grldr,当然,也可以是startrom.n12或者使用3com Image Edit创建的pxe启动菜单文件,总之,它应该是一种由pxe启动规范规定的固定格式的可执行文件),然后客户端再联系启动服务器(TFTP服务器)获得启动文件并执行,这样基本上就完成了pxe启动过程。在Unix或者Linux系统下,DHCP服务器和TFTP服务器一般都是分开设置的,两台服务器甚至可以在两台不同的机器上,其实Windows下的设置也是一样的,但在Windows下,我们可以通过使用HaneWin DHCP服务器软件或TFTPD32,这样使用一个软件就搞定了两台服务器(我个人推荐使用HaneWin DHCP服务器软件,但TFTPD32设置起来更简单一些,就是效率有些低),详细的设置方法请自己摸索,你只要知道,在设置PXE服务器时,要设置好DHCP和TFTP两个服务器,其中DHCP服务器要设置启动服务器名(066选项)和启动文件名(067选项)。
2、PXE启动PE 1.0的原理首先声明,这里讲的方法不见得适应于所有的PE,基本上基于无忧启动论坛老九(lxl1638)所制作的PE(例如老毛桃定制的版本)都应该是可以的,这些PE都是基于RAMDisk方式启动的,我试验时,深山红叶的PE是不能这样启动的。通过PXE启动PE需要这么几个文件:
1)startrom.n12:这个文件从Windows 2003 SP1/SP2光盘中来,这个文件实际上也是一个符合pxe启动规范的启动文件,可以直接作为pxe服务器的启动文件来直接运行,当然,它也可以通过pxelinux的kernel命令来运行,我不知道grub4dos是否识别它的文件格式,如果能够识别,原理上它也可以使用grub4dos的kernel命令来执行,否则就使用chainloader --force命令来执行。在Windows 2003 sp1/sp2的光盘中,还有一个startrom.com文件,它的作用跟startrom.n12是相同的,只是启动时需要按一个F12键才能继续,而startrom.n12则去掉了F12这个提示。
2)ntldr:这个文件是从Windows 2003 SP1/SP2光盘中的setupldr.exe改名而来,它的作用应该相当于从本地硬盘启动PE的setupldr.bin,但两者并不相同,但它决不是我们平常所使用的ntldr。这个文件必须放到TFTP服务器的根目录。
3)ntdetect.com:这个就是XP或2003所使用的c:\下的ntdetect.com。这个文件也必须放到TFTP服务器的根目录。
4)winnt.sif:这个是PE的启动配置文件(用来指定PE的系统目录及PE映像文件所在路径及启动选项)。这个文件也必须放到TFTP服务器的根目录。通过pxe启动的PE支持3种映像文件格式,例如,ISO、IMG或者SDI。其实,SDI格式相当于IMG格式,只是SDI格式在IMG文件前加了一个文件头。一般我们都使用ISO或IMG格式,但这两种格式的启动选项是有所不同的,ISO格式要在启动选项中增加一个/rdexportascd,而SDI格式还要增加一个/rdoffset选项。下面是Winnt.sif的示例:
CODE:
[SetupData]BootDevice = "ramdisk(0)"BootPath = "\I386\SYSTEM32\"OsLoadOptions = "/minint /fastdetect /rdpath=winpe.img";OsLoadOptions = "/minint /fastdetect /rdexportascd /rdpath=WINPE.ISO"

另外,winnt.sif文件中还要注意的就是BootPath选项,默认它指向"\I386\SYSTEM32"目录,但老毛桃的PE将I386目录修改成了WXPE,那么这里要作对应的修改,同时还要修改2)中的ntldr文件,将其中所有的I386替换为WXPE。只是修改winnt.sif是没有用的。后面我们讲通过PXE启动多个PE时还要讲更多的hack PE启动文件的方法。
5)PE映像文件(IMG或者ISO或者SDI格式,例如WinPE.IMG):这里特别要注意的就是PE的映像文件一定不能使用cab压缩格式,如果你用老毛桃的PE,一定要将它光盘根目录下的WinPE.IS_解压缩成winpe.iso然后放到这里使用。这样,IMG格式的PE就比较有优势了,因为IMG格式是硬盘分区映像格式,你可以对这个分区使用NTFS文件系统并加上NTFS压缩,基本上压缩率也接近cab压缩格式,这样img文件就没有必要使用cab压缩但仍然具有cab的压缩率,而且img格式可以直接使用Virtual Disk Manager(VDM)挂载并进行编辑,修改起来比较方便。另外,这个PE映像文件没有必要放在TFTP服务器的根目录下,例如上面的winnt.sif中就将winpe.img放在了TFTP服务器的/netpe.c/目录下。

PXE启动PE的过程大致是(可能也不是很严谨):startrom.n12获得执行后,在TFTP服务器根目录下寻找ntldr(setupldr.exe),找到后加载ntldr并执行,而ntldr则在TFTP服务器的根目录下查找winnt.sif,根据winnt.sif的内容从TFTP服务器上下载PE的映像文件并根据选项进行PE的加载,在PE的加载过程中可能会用到ntdetect.com。

制作[DeepinXP V5.3SP+深山红叶+老九PE]整合光盘之教程

制作[DeepinXP V5.3SP+深山红叶+老九PE]整合光盘之教程

关于本教程:
这个教程是教大家怎样做[DeepinXP V5.3SP+深山红叶+老九PE]整合光盘(以下简称整合光盘)。这是一个基础式的教程,面向有一定自学能力的同学,只是教大家怎样整合而不做其他任何的修改。对于EasyBoot和UltraISO的帮助中说到的地方,这里就不再重复了。希望大家能举一反三,学习了这个教程后能做出一张合心意的光盘来。另外,教程中所有列出的不列出的工具软件、素材以及软件的注册等,请大家自行搜索下载,这里不提供任何的下载和注册码之类的。
具体作品请看: 《DeepinXP V5.3SP+深山红叶+老九PE》整合光盘发布帖:
一、准备工作
1. 工具。
工欲善其事,必先利其器。做启动光盘离不开工具,合适的工具使你事半功倍。EasyBoot :是一款集成化的中文启动光盘制作工具,它可以制作光盘启动菜单、自动生成启动文件、并生成可启动ISO文件。入门级制作多启动光盘必备工具,不需要太多的理论知识就可以做出漂亮的启动画面。UltraISO :是一款功能强大而又方便实用的光盘映像文件制作/编辑/转换工具。使用UltraISO,你可以随心所欲地制作/编辑/转换光盘映像文件,配合光盘刻录软件烧录出自己所需要的光碟。
2. 素材:
Deepin XP V5.3SP 深度会员特别版,更名为Deepin.iso (为了便于教程的说明而改,不是必要的。下同)。Windows PE(XP) 深山红叶光盘工具箱V26,更名为深山红叶PE.iso。老九 WinPE 老毛桃修改 版,更名为老九PE.iso。必要的足够的硬盘空余空间。已经制作好的符合要求的图片(800X600,256色,Windows BMP格式,且不压缩),更名为BACK.BMP。PS:在开始制作前建议同学们先去看看EasyBoot和UltraISO的帮助文件,先对这两个软件有一定的印象。还要找一找关于背景图的制作之帖子。不要对我说找不到,下点心思,多用用搜索引擎。这一点很重要,在这个教程的后面会用到背景图,希望大家能先做好准备。

二、开始制作:工具有了,素材有了,功课也温习了,接下来就正式开始了。
1. 准备文件夹:
新建一个文件夹,这个文件夹可以在任意盘的任意位置,可以是任意名字,不分大小写,只要你自己做的时候明白并记得住就可以了。在这个例程中是我用CDRoot,至于具体位置就没必要说了,和这个教程、和以后做光盘镜像时没有必然的联系。文件夹里面就是以后做出来的光盘的根目录。
2. 提取文件:
用UltraISO打开Deepin.iso,请看上图:可以看到里面有一个灰色的(表示隐藏属性)文件夹EZBOOT,里面的东西就是用光盘启动机器时显示的菜单画面和运行菜单所用的文件。如果在其他光盘或者光盘镜像文件上这个文件夹(不一定是这个名字也不一定会隐藏)里有XXXXX.EZB这样的文件,我们就可以认为这个光盘或者说启动菜单画面是用EasyBoot做的。在Windows的资源管理器里就算是选择了“显示所有文件和文件夹”,也是看不到的。这就是为什么要用UltraISO的原因之一,如果单单是提取全部文件(包括EZBOOT文件夹),有很多工具可以做得到的。用UltraISO打开Deepin.iso后,提取所有的文件夹和文件到刚才新建的文件夹CDRoot。同样的,把深山红叶PE.iso和老九PE.iso这两个光盘镜像文件内的文件夹和文件提取到CDRoot文件夹。在这个过程中必须要注意:这三个光盘内根目录下的文件夹是没有重名的,这也是为什么这几个光盘能整合在一起而且很简单的原因。根目录下的文件有的是重名的,这时候就要分清楚重名的这些文件的作用以及能不能改名或删除(在这个例程中是在整合光盘中是否保留),本例中三个光盘根目录下重名的有4个,分别是:AUTORUN.INF、BOOTFONT.BIN、WIN51和WIN51IP(这两个文件是没有后缀名的),BOOTFONT.BIN 是XP系统光盘在安装XP时用到的字体文件(只是我个人的理解,很可能是不对的,但是这个文件的作用和本例无关,只要保留有这个文件就可以了),这里可以用任何光盘上的。WIN51和WIN51IP是XP光盘的标识性文件之一,同样,在这里可以用任何光盘上的。AUTORUN.INF是用来配置在Windows下将该插入光驱时的自动运行(不是启动),是一个文本文件,可以用记事本打开。里面的内容定义了插入时自动运行的程序和光盘的图标。本例程里,我保留深山红叶光盘上的AUTORUN.INF,其他的不要,有兴趣的同学可以研究一下,在以后做整合光盘的时候,如果遇到这种情形,可以将所有AUTORUN.INF的内容集合在一起,修改成一个合格的AUTORUN.INF。经过一番努力,在这么多步骤(其实不多,只是我说的多)后,终于有一点点整合光盘的样子了,这时候CDRoot文件夹里的文件和文件夹如下图的样子
其中:BOOT是深山红叶光盘的启动目录;EZBOOT是DeepinXP光盘的启动目录,这两个文件夹里面各自存放着这两个光盘启动时显示、运行菜单所必须的文件。
3. 制作启动菜单前的准备:
这时我们就可以请出EasyBoot了,用EasyBoot打开CDRoot\BOOT\CDMENU.EZB,这是深山红叶光盘的启动菜单文件,由于原光盘没有带上背景图片,这时候会弹出一个对话框,如下图
点确定,然后到菜单条选项里,将每个菜单条“使用图像文本”前的小勾去掉,就可以看到深山红叶光盘的启动菜单了。看下图
现在将每个菜单条的执行命令和对应的菜单文本记下来,同样的,也对DeepinXP光盘里原来的菜单文件(DEFAULT.EZB)做和CDMENU.EZB同样的操作,把记下来的数据放好以备用
再把EZBOOT和BOOT这两个文件夹里面的文件集中在一个文件夹里,可以这两个文件夹中的一个,也可以是新建的,如果是新建文件夹,则必须放在CDRoot文件夹下并删除EZBOOT和BOOT。这个例子里我将文件集中到EZBOOT删除BOOT,现在的EZBOOT文件夹就是整合光盘的启动目录,其中BACK.BM1是保存菜单后生成的文件,现在就可以删除或者不理睬它;而且我会把CDMENU.EZB和DEFAULT.EZB这两个文件删除(或者移到一个临时文件夹里,看你的需要。原因下面会说到。)跟着用UltraISO打开老九PE.iso,将它的引导文件提取出来保存成XPPE.bif并放到EZBOOT文件夹,之后改名为XPPE.BIN。这个时候,CDBoot文件夹下的文件和文件夹结构以及启动目录内的文件请看下图
这个时候的文件和文件夹结构就是以后做出来的整合光盘的目录结构了。
4. 正式制作启动菜单:
因为EasyBoot有个Bug,导致在某种情况下新,新版本的EasyBoot打开旧版本EasyBoot建立的菜单文件后做成的光盘启动到显示的时候会花屏。解决方法是重新建立菜单文件。所以在前面我就删除了。在这个例程里我是新建一个名为CDMENU.EZB的菜单文件。在这个时候,前面记录下来的菜单条的执行命令和对应的菜单文本就派上用场啦,根据这个记录建好菜单条后,再新建一个菜单条,执行命令就是run xppe.bin。具体的操作请看帮助,这里就不再详细说清楚了。这样所有的菜单都做好了,再放入背景文件,或者干脆不用背景文件,这样启动时背景就是纯黑色。再把菜单条摆好位置,存盘。这一步就是发挥大家的创造能力了,很容易就可以做出非常具有个性的启动菜单啦。新的菜单文件做好后就可以删除原来的旧的两个菜单文件了。在制作ISO之前先到“其它”选项卡里把“2”和“3”这两个功能键的命令删除掉,因为bcdw.img和unbomb.img这两个文件在原来深山红叶光盘里也是没有的,在保存菜单的时候会弹出警告框。接下来就是制作ISO了,在EasyBoot里点“文件”-“制作ISO”,在弹出的“制作ISO”对话框里,请按照下图来进行设置:
说明:
1. 光盘文件目录就是前面说的新建的CDBoot,这个文件夹里面就是以后做出来的光盘的根目录,绝对大多数是菜单文件所在文件夹的上一级文件夹。
2. 引导文件一定要指向EasyBoot 自带的loader.bin,这样我们制作的启动菜单才起作用。
3. 优化光盘文件的作用是在光盘上的重复文件全部指向一个相同的文件,这样可以节省很多宝贵的光盘空间。网上很多的多系统合集一张650M的光盘上有好几个系统,一张DVD甚至有20到30个系统,就是利用这点来做的。
4. DOS(8.3)和Joliet前的小勾不要打上。DOS(8.3)的是因为要做的这个光盘里面有长文件夹名;Joliet的是因为打勾后,原来深山红叶光盘里的工具大多数都不能用了,运行后出现一个警告,大致意思是说“应用程序未能正确配置,请重新安装程序”。
5. 其他地方就看个人的喜好来设置了,可以是任意名字任意路径,其中两个“隐藏”选项的作用就是在DOS和Windows下隐藏启动目录和里面的内容。
OK后就可以点“制作”来做ISO光盘镜像文件了。
完成后就可以用VPC或者VM这类虚拟机软件来进行测试了。看着自己新手做的光盘正在运行漂亮的启动菜单,大家是不是很有成就感啊?
补充:用前面列出的素材做出的整合光盘大小在450M左右,一张大盘CD的容量在650M-700M,,这样还可以加入200M以上的数据。这个就看大家的喜好来做也了,可以加入XP功能恢复补丁和XP自带驱动;可以加入一些绿色软件;也可以加入MS更新的安全补丁;甚至可以再加入一个或者几个PE以及DOS工具箱;更可以加入一个合适的精简版系统。总之这些就看大家的努力了,我希望能看到更多优秀的启动光盘出现。这就是我写教程的目的啦。由于本人水平有限,这个教程难免会有错误,希望大家给予指正,同时大家看了教程有什么问题的请跟帖说明,我会尽量给大家回复的。
本教程到这里就结束了,谢谢大家的支持

Winternals Administrator Pak 5.0

Winternals Administrator Pak 是一个超强的多功能组合Win 2000/NT/XP修复工具,价值NT$ 28,000!
Winternals software 公司是于 1996 年由 Bryce Cogswell Ph.D. 和 Mark Russinovich Ph.D. 共同成立于美国德州,该公司主要产品为Windows 2000/NT 的系统修复和管理工具。这些修复与管理工具可应用于修复与救回损毁的 Windows-based 系统,让您不需从新装置系统。目前该公司产品已有超过 25,000 家企业与机构使用,其中不乏知名企业,如: AT&T、Bank of America、Compaq、IBM 等。dministrator’s Pak 包含 ERD Commander 2000, Disk Commander, Remote Recover, NTRecover, Locksmith, 和 Monitoring Tools.功能:修复错误、损毁的系统,重新设定文档权限、已遗失的密码、抢救系统而无须担心遗失重要资料。网络重组管理工具,使您的系统保持最佳状态。由网路及时监控文档系统、TCP/IP状态。易于由任何Windows 2000/ Me/ NT/ 9x 或 DOS System取得FAT、FAT32。
安装后运行其中的ERD Commander 2002,得到一个可以启动机器的光盘镜像,约150MB,用Nero刻盘后,就得到了一张超酷的启动光盘了。用此光盘启动后,可以进入一个类似windows桌面的界面,有开始菜单等,最重要的是内置了一些有用的工具。
光盘启动后,其中的资源管理器可以访问NTFS分区,可以像Windows的资源管理器一样粘贴复制。对于ntfs分区设置了权限而无法访问的文件夹,可以很方便的修改为everyone都可以访问。
还有一个工具可以修改Windows 2000/XP的用户密码,不怕忘记密码了,看来Windows2000/XP的密码也不怎么安全。还有一个和Windows自带的注册表编辑器一样的注册表编辑器,在Windows无法启动时,可以用它来修改注册表。还有和Windows下一样的记事本和命令提示符。设置好网络后还可以联网。在Windows崩溃后,还可以用它来添加删除驱动和禁用一些服务,对于全部用NTFS的人。这张盘应该是非常有用的。 基本就是一个Win32的平台,就像是一个简化了可以刻到光盘的Win2000,xp,一些XP下命令提示符中的程序,例如subst.exe等,都可以在其平台下运行!
ERD Commander:这可以算是Winternals Administrators’ Pak工具中最强大的组件了,其中一个引人注目的功能就是修改密码,Windows NT/2000/XP/2003 系统中任何一个用户的密码都可以在不知道原先密码的情况下被ERD修改掉。
运行了开始菜单中的ERD Commander安装向导后向导会需要你根据自己的详细情况做一些设置,然后生成一个ISO格式的光盘镜象,把这个光盘镜象刻录到光盘后就可以用这张光盘引导系统并进行操作。这里有两点需要注意:由于ERD Commander功能的特殊以及滥用后可能造成的危险,在创建引导文件的时候你可以选择用密码保护,这样只有知道密码的人才可以用ERD Commander的光盘引导系统并进一步操作。其次,如果你有无法被操作系统识别的硬件(尤其是SCSI设备),那就需要在创建光盘之前首先加入它们的驱动程序,否则用光盘启动后这些设备将无法正常使用。
用ERD Commander的光盘启动系统跟安装操作系统时的界面很类似,虽然我们试验用的电脑运行的是Windows 2000,不过在启动时却出现了Windows XP Professional的启动画面,不过这并不影响我们的正常使用。启动完成后会看到图一的界面。如果你装有两个或者更多的Windows操作系统,就可以在这里选择用ERD Commander进入哪个系统,选择好后再指定你的键盘布局和时区,然后点击OK,如果你制作这个镜象的时候设置了密码保护,这时候程序就会提醒你输入密码。等待片刻,你将会看到图二的界面,是不是很熟悉啊,就跟我们常用的Windows一样,只不过"开始菜单"里的内容有所不同。
ERD Commander启动电脑后会根据DHCP服务器分配IP地址,如果你的网络中没有DHCP服务器,则需要在Administrative Tools菜单下的TCP/IP Configuration里给你的系统临时指派一个。其次,默认情况下ERD Commander启动后会把你的电脑添加到WORKGROUP工作组中,如果你需要访问其他工作组或者域中的电脑,首先就要加入这个工作组或域:双击Network Neighborhood图标进入网络邻居,然后在Tools菜单下点击Add Domain,输入想要加入的域或者工作组的名称,然后确定。
除了这些功能,ERD Commander还可以做很多事,例如重新配置系统服务、修改系统注册表等,而这些功能操作上跟Windows中的没有太大区别,大家可以自己试试。不过在运行ERD Commander的时候一定要确保光盘一直在光驱中,否则系统会自动被锁死。
最后,当你修复完以后要退出的时候,点击菜单中的logoff然后确定,等待片刻后仍然会出现图一的界面,取出光盘后点击Reboot,就可以重启动到正常的Windows中。
除过ERD Commander,Winternals Administrators’ Pak中还有很多其他非常有用的工具。例如可以在DOS下读写NTFS分区的NTFSDOS、可以实时监视系统文件的Filemon、可以实时监视注册表的Regmon等,如果能够利用好Winternals Administrators’ Pak,相信一般的系统问题我们都可以使得损失降到最低。

Search with Google