分类目录归档:技术文献

Windows 8 安装Visual studio 2008的方法

WIN8下也能运行VS2008软件,但是如果直接安装VS2008的话是不能成功的,必须首先手动安装NET Framework 3.5,然后才能成功地安装VS2008。下面是在WIN8下安装NET Framework 3.5的方法:
WIN8下面安装.NET3.5,即便是离线安装包,整个安装过程还是需要联网验证,安装速度超级慢。我们改为离线安装,步骤如下:
1、解压WIN8的ISO安装包到F盘根目录下(存放目录随意,但是下面的目录需要相同)
2、按键Win+X,选择命令提示符(管理员)
3、输入以下命令:(F为步骤1所解压的WIN8文件)
dism.exe /online /enable-feature /featurename:NetFX3 /Source:F:\sources\sxs
点击查看原图

4、然后进入控制面板-》程序-》启用或关闭Windows功能,看第一项已经勾选上,安装成功。

点击查看原图
5、按正常方式安装VS2008,下面的图表示我安装成功了。

点击查看原图

Windows 启动项乱码解决

方法如下:进入Windows系统,使用管理员身份(Administrator)打开命令提示符窗口输入:
bcdedit /set {bootmgr} locale zh-CN
bcdedit /deletevalue {bootmgr} device
bcdedit /deletevalue {bootmgr} path
3项各修改成功后,英文菜单重新启动后双系统菜单就恢复中文了。

WinPE 制作技术文章之 —— 自己DIY亲自制作Win7PE系统

  首先,在D盘新建一个winpe文件夹,在winpe文件夹中再新建sources、pe3和new三个文件夹,把附件中提供的工具imagex连同文件夹一起放到winpe目录中。

制作win7pe步骤:
  1、把windows 7光盘(或光盘镜像)里的\sources\boot.wim文件复制到d:\winpe\sources目录;
  2、在附件提供的imgaex目录里右键点击inf文件,选安装(Imagex 6.0 AIK 封装工具);
  3、运行cmd,进入imgaex目录;
  4、输入:imagex /mountrw d:\winpe\sources\boot.wim 2 d:\winpe\new (将d:\winpe\sources\boot.wim镜像映射到d:\winpe\new目录)备注:如果无法映射可以把 "2"换成"1"
  5、删除d:\winpe\new目录下的setup.exe文件。删除sources文件夹(很重要),可以精简winpe哟;
  6、输入:imagex /unmount /commit d:\winpe\new (合并对d:\winpe\new目录中映像文件的修改,并将其卸载);
  7、输入:imagex /compress maximum /export "d:\winpe\sources\boot.wim" 2 "d:\winpe\pe3\boot.wim",把boot.wim分离并重新压缩;
  8、d:\winpe\pe3\boot.wim即为修改后的镜像。这个时候运行这个映像winpe是默认的“命令提示符”窗口;
?
制作WinPE光盘镜像:
  1. 新建d:\winpe\pe目录和d:\winpe\pe\sources目录;
  2. 复制(windows 7光盘为X)X:\boot目录(包括文件)到d:\winpe\pe目录中,复制X:\efi目录(包括文件)到d:\winpe\pe目录中,复制X:\bootmgr文件到d:\winpe\pe目录中,复制修改后的boot.wim文件到d:\winpe\pe\sources(X为windows7光盘符);
  3. 用UltraISO提取windows 7光盘引导文件,保存为windows7.bif;
  4. 用UltraISO将d:\winpe\pe下的目录和文件添加到光盘镜像,加载windows7.bif,保存镜像为WinPE3.0.iso;

图像shell
  Winpeshl.ini 可控制是否将自定义外壳程序加载到 WindowsPE,而不是默认的“命令提示符”窗口。若要加载自定义外壳程序,请创建一个名为 Winpeshl.ini 的文件,然后将它放在自定义 WindowsPE 映像的 %SYSTEMROOT%"System32 中。该 .ini 文件必须包含以下部分和项:
[LaunchApp]
AppPath = %SYSTEMDRIVE%"myshell.exe
[LaunchApps]
%SYSTEMDRIVE%"mydir"application1.exe, -option1 -option2
application2.exe, -option1 -option2
  将 AppPath 项设置为外壳应用程序的路径。该路径可以是完整的绝对路径,也可以使用环境变量(例如 %SYSTEMROOT%"System32"Myshell.exe)来表示该相对路径。AppPath 项不支持命令行选项。使用 [LaunchApps] 部分运行带命令行选项的应用程序。应用程序按照列出的顺序运行;应用程序的名称及其选项以逗号分隔。当退出“命令提示符”窗口或自定义外壳应用程序时,WindowsPE 将重新启动。不要编辑 Setupreg.hiv 的 HKEY_LOCAL_MACHINE\SYSTEM\Setup 注册表项中的 CmdLine 值来启动外壳应用程序。CmdLine 的值可调用 Winpeshl.exe,Winpeshl.exe 会执行很多函数,包括调用 Windows PE 中的默认“命令提示符”窗口或您的自定义外壳应用程序。
  举例:用b**plorer制作自制 DIY 版WindowsPE,从网上下载b**plorer程序,从CMD到imagex目录:imagex /mountrw d:\winpe\sources\boot.wim 1 d:\winpe\new,解压b**plorer后连同文件夹一起放到d:\winpe\new\windows目录中,把上面建的Winpeshl.ini,里面要指出b**plorer.exe所在的路径,放到d:\winpe\new\windows\system32中。
定义:
【bs_desktop.ini】
这个文件是用来自定义WinPE的桌面快捷方式的,第一行的 [Desktop CFG file Ver.1] 必须保留。
格式:
<-ItemBegin->
ItemX=
ItemY=
Caption=
ExeName=
IconName=
IconNumber=
ExeDir=
CmdParam=
ShowState=
<-ItemEnd->
举例:
<-ItemBegin->
ItemX=20
ItemY=20
Caption=资源管理器
ExeName=%SystemDrive%\Program files\A43\A43.exe
IconName=%SystemDrive%\Program files\A43\A43.ico
IconNumber=0
ExeDir=%SystemDrive%\Program files\A43
CmdParam=
ShowState=NORMAL
<-ItemEnd->
参数说明:
  每一个左边上的图标都是由这样的一段配置生成的,每个图标开头和结尾必须有 <-ItemBegin-> 和 <-ItemEnd-> , ItemX= 是指图标的横向距离,默认第一列为 20 ,第二列为 100 ,第三列为 180 ,以此类推(每下一列的值都比前一列增加 80 ,这是默认的设置,可以自由修改,但这是最好的设计了)。 ItemY 和 ItemX= 一样,但指的是横向坐标(即行数)。 Caption 填什么都可以,支持中文,是图标下的名称文字。 ExeName则是目标文件或程序的路径(要求包括扩展名,可以不是绝对路径。允许使用系统变量)。 IconName 是此快捷方式的图标路径, IconNumber 是此图标文件中的第几个图标,默认为 0 。 ExeDir 是此文件或程序的运行路径。 CmdParam 是专门应用于这个程序的启动(命令行)参数(例如 Nero StartSmart Essentials 的启动参数是 -ScParameter=8 ),大部分大型软件都有用到。 ShowState 是目标的显示方式,默认为 NORMAL ,在此参数下打开窗口不会有任何变化,仍然是原样。

【bs_logon.ini】
  这个文件是用来自定义WinPE的登录方式的,这里只讲解 [Shell] 部分, [Shell] 此行必须保留。
格式:
=
举例:
BS图形界面=%SystemDrive%\Program Files\B**plorer\explorer.exe
参数说明:
  =之前的内容为登陆框下拉菜单中的显示文字(允许空格和汉字),之后的内容为一个WinPE Shell的路径,其实就是一个可执行程序,但是如果只打开一个普通应用程序的话就不会打开桌面,当此程序结束时会退回登录对话框。无论 [Shell] 下面的内容你删去了什么,举例中的那行一定要保留,否则下拉菜单中不会出现 BS图形界面项,自然也无法进入桌面了。
?
【bs_qlaunch.ini】
  这个文件是用来自定义WinPE的快速启动栏的,第一行的 [QLaunch CFG file Ver.1] 必须保留。
格式:
<-ItemBegin->
Caption=
ExeName=
IconNumber=
<-ItemEnd->
  举例:
<-ItemBegin->
Caption=显示桌面
ExeName=@ShowDesktop
IconNumber=20
<-ItemEnd->
参数说明:
  与 bs_desktop.ini 文件一样,就是参数少了点。
?
【bs_menuimg.bmp】
  这个文件中保存着需要用到的一些常见的小程序图标(16×16),此文章中所有的 IconNumber= 都指向这里,所以比较重要。第一个编号为 0,第二个编号为 1 ,以此类推,您可按照16×16的大小添加或修改图标。
?
【bs_explorer.ini】
  这个文件中只有几个需要特别讲解的地方:
DesktopBkgndText= 显示在桌面右下角的文字,颜色默认为白色,可自由修改,值为空时会显示一段版权说明(我看不懂啊)
DesktopTextColor= 规定了桌面上的文字颜色,格式为十六进制颜色数值,默认为 $00ffffff
DesktopTextBkColor= 规定了桌面上的文字的背景色,格式为十六进制颜色数值,默认为 $ffffffFF
其它可能有用的参数(不做详细解释):
NoCheckFiles= 不检查文件,默认为 YES
NoStartMenuIcon= 无开始菜单图标,默认为 NO
NoStartMenuMargin= 无开始菜单边缘空白,默认为 NO
NoDesctopIcon= 不显示桌面快捷方式,默认为 NO
NoQlaunchBar= 不显示快速启动栏,默认为 NO

【BS_START.INI】
  这个文件是最重要的!它规定了开始菜单中的内容。
格式:
<-ItemBegin->
ShowInAutorun=
EnableInAutorun=
ParentItem=
Caption=
ExeName=
IconNumber=
ExeDir=
ShowState=
<-ItemEnd->
举例:
<-ItemBegin->
ShowInAutorun=YES
EnableInAutorun=YES
ParentItem=office
Caption=Word
ExeName=%SystemDrive%\program files\Office97\WORD.EXE
IconNumber=45
ExeDir=%SystemDrive%\program files\Office97
ShowState=NORMAL
<-ItemEnd->
参数说明:
  ShowInAutorun= 和 EnableInAutorun= 两项好像基本在我的自定义实验中并没有什么用处,所以不做讲解。大部分参数都与以上介绍的几个文件相同,ParentItem= 是指向此快捷方式放入哪个文件夹(如果要放到开始菜单的根目录下的话,就需要写入 root )。建立文件夹的格式为:
<-ItemBegin->
ShowInAutorun=YES
EnableInAutorun=YES
ParentItem=programs
Caption=Office 97
MenuId=office
<-ItemEnd->
  MenuId 是一个唯一的标识,普通快捷方式的 ParentItem= 指向的就是这里。
  同样需要特殊说明的是建立分隔线,格式为:
<-ItemBegin->
ShowInAutorun=YES
EnableInAutorun=YES
ParentItem=root
Caption=-
<-ItemEnd->
  同样,ParentItem= 的值属性同上(汉译为:“母物品”)。
imagex /unmount /commit d:\winpe\new
imagex /compress maximum /export "d:\winpe\sources\boot.wim" 1 "d:\winpe\pe3\boot.wim"
  然后把boot.wim放到d:\winpe\pe\sources中,用Ultraiso制作ISO文件(步骤同上),这样以后你的winpe3的外壳界面就是b**plorer带来的效果了。刚快试试吧!

 

制作Bootmgr引导+EFI引导光盘命令格式

oscdimg.exe -m -o -u2 -udfver102 -lmype -bootdata:2#p0,e,b"D:\winpe\pe\boot\etfsboot.com"#pEF,e,b"D:\winpe\pe\efi\microsoft\boot\efisys.bin" D:\winpe\pe D:\mype.iso

 

grldr引导+EFI引导(下列命令中的D:\mycddir\skype是grldr)

OSCDimg.exe -lmyiso -h -m -o -d -g -c -n -bootdata:2#p00,e,b"D:\mycddir\skype"#pEF,e,b"d:\aaa\UEFI.BIN" "D:\mycddir" "D:\abc.ISO"

系统加密比较:Vista BitLocker vs. Mac OS X FileVault

  早在Windows Vista上市之前,便有许多人有意无意地将其与苹果(Apple)的Mac OS X相提并论,试图比较二者的优劣。毕竟,从简单的角度看,Windows Vista与Mac OS 间存在太多的相似点,比如说,Windows Vista的Aero Galss界面与Tiger中的Aqua界面,再比如说Windows Vista中的即时搜索与Mac中的“Spotlight”等.而在操作系统对文件的加密方面,Windows Vista中引入了对BitLocker的支持,这与Mac OS X中的FileVault 也有一定程度的近似,二者欲实现的目标也基本相同:即保护用户的重要数据,使其即使在电脑遗失的情况下也不会造成机密的外流。
  从技术上看,无论BitLocker还是FileVault,均是一种系统级的加密,但尽管二者的目标相同,采取的具体机制则有明显的差别。那么,究竟孰优孰劣?下面我们进行简单的比较。

Windows Vista的BitLocker
  与Mac OS X中的FileVault相比,Windows Vista中的驱动器加密功能BitLocker更为强大,不仅加密、保护用户文件,事实上,BitLocker加密的是整个系统分区,包括Windows系统文件、应用程序以及存放于系统盘的任何个人数据。

  启用了BitLocker的Windows Vista系统,要求在启动时必须插入存有密钥的USB盘,或具有BitLocker恢复密码,不然,系统将无法启动。BitLocker在加密过程中使用一个相对较小的启动分区来检查密钥,只有检测通过硬盘数据才可存取,这样,即使非法使用者将该硬盘挂接在别的可正常启动的系统上,也无法读取该分区中的数据。

  BitLocker的优势: 没有正确的密钥,不仅无法启动进入Windows Vista,而且,正如上文所言,即使非法使用者采取其他手段,如试图以脱机方式浏览存储在受保护驱动器中的文件,也无法读取加密分区内的数据,最大程度地保证了数据的安全。

  BitLocker的不足:从某种程度上说,BitLocker的优势也具有双面性,用户必须确保将自己存有密钥USB盘不要遗失,或者,将BitLocker恢复密码保存到安全位置,不然,也许会发生反而将自己“拒之门外”的惨剧。

  此外,要享受BitLocker带来的好处,用户必须购买Windows Vista Ultimate或Enterprise版,并且,在设置时需调整硬盘分区,新建一个启动分区以及将密钥保存到USB盘等繁琐过程。

Mac OS X的 FileVault
  在Mac OS X中,FileVault自动加密用户文件目录及其中的文件。当用户对其目录中的文件进行读写操作时,FileVault在后台自动对相应文件进行加解密过程,其效率极高,事实上,大多数用户在操作中甚至感觉不到存在这么一个加、解密的过程。

  FileVault使用用户的登录密码作为加解密的密钥。也即是说,只有当用户使用正确的密码登录时,才能看到自己主目录及其下的文件。不然,该文件夹将不可存取。如果同一台Mac机上存在多个用户,那么,每个用户只能看到自己的主目录及目录下的文件,而无法对其他用户目录下的文件进行操作。

  FileVault的优势:FileVault是Mac OS X系统的默认功能,用户不必像Windows Vista那样,必须购买更昂贵的Windows Vista Ultimate 或 Enterprise版才能享受BitLocker功能。同时,与BitLocker相比,不必对硬盘进行重新分区,不必创建存有密钥的USB启动盘,几乎不需任何用户设置,应用较为简便、方便。

  FileVault的不足:即便启用FileVault,非法用户仍能正常启动Mac,这与BitLocker直接让非法用户无法进入系统存在距离,虽然此时从理论上说,非法用户仍然无法读取用户目录下的文件。

小结:Windows Vista更胜一筹
  从上文的简单比较可以看出,尽管要应用BitLocker,需要购买更昂贵的Windows Vista版本,需要远较FileVault复杂的设置过程,但BitLocker的安全防护更为全面,可以从根本上把非法使用者拒之门外,即使其拿到您的PC、您的硬盘,也同样对其上的数据无能为力。

  此外,还必须考虑到,在Windows Vista中,除了BitLocker,还可以使用EFS(Encrypt File System : 加密文件系统),加密特定文件/文件夹,这可实施进行更灵活的数据保护。

Ext3与Ext4的主要区别

Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4。 Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加了一个日志功能而已。Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能:

1. 与 Ext3 兼容。 执行若干条命令,就能从 Ext3 在线迁移到 Ext4,而无须重新格式化磁盘或重新安装系统。原有 Ext3 数据结构照样保留,Ext4 作用于新数据,当然,整个文件系统因此也就获得了 Ext4 所支持的更大容量。

2. 更大的文件系统和更大的文件。 较之 Ext3 目前所支持的最大 16TB 文件系统和最大 2TB 文件,Ext4 分别支持 1EB(1,048,576TB, 1EB=1024PB, 1PB=1024TB)的文件系统,以及 16TB 的文件。

3. 无限数量的子目录。 Ext3 目前只支持 32,000 个子目录,而 Ext4 支持无限数量的子目录。

4. Extents。 Ext3 采用间接块映射,当操作大文件时,效率极其低下。比如一个 100MB 大小的文件,在 Ext3 中要建立 25,600 个数据块(每个数据块大小为 4KB)的映射表。而 Ext4 引入了现代文件系统中流行的 extents 概念,每个 extent 为一组连续的数据块,上述文件则表示为“该文件数据保存在接下来的 25,600 个数据块中”,提高了不少效率。

5. 多块分配。 当 写入数据到 Ext3 文件系统中时,Ext3 的数据块分配器每次只能分配一个 4KB 的块,写一个 100MB 文件就要调用 25,600 次数据块分配器,而 Ext4 的多块分配器“multiblock allocator”(mballoc) 支持一次调用分配多个数据块。

6. 延迟分配。 Ext3 的数据块分配策略是尽快分配,而 Ext4 和其它现代文件操作系统的策略是尽可能地延迟分配,直到文件在 cache 中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。

7. 快速 fsck。 以前执行 fsck 第一步就会很慢,因为它要检查所有的 inode,现在 Ext4 给每个组的 inode 表中都添加了一份未使用 inode 的列表,今后 fsck Ext4 文件系统就可以跳过它们而只去检查那些在用的 inode 了。

8. 日志校验。 日志是最常用的部分,也极易导致磁盘硬件故障,而从损坏的日志中恢复数据会导致更多的数据损坏。Ext4 的日志校验功能可以很方便地判断日志数据是否损坏,而且它将 Ext3 的两阶段日志机制合并成一个阶段,在增加安全性的同时提高了性能。

9. “无日志”(No Journaling)模式。 日志总归有一些开销,Ext4 允许关闭日志,以便某些有特殊需求的用户可以借此提升性能。

10. 在线碎片整理。 尽管延迟分配、多块分配和 extents 能有效减少文件系统碎片,但碎片还是不可避免会产生。Ext4 支持在线碎片整理,并将提供 e4defrag 工具进行个别文件或整个文件系统的碎片整理。

11. inode 相关特性。 Ext4 支持更大的 inode,较之 Ext3 默认的 inode 大小 128 字节,Ext4 为了在 inode 中容纳更多的扩展属性(如纳秒时间戳或 inode 版本),默认 inode 大小为 256 字节。Ext4 还支持快速扩展属性(fast extended attributes)和 inode 保留(inodes reservation)。

12. 持久预分配(Persistent preallocation)。 P2P 软件为了保证下载文件有足够的空间存放,常常会预先创建一个与所下载文件大小相同的空文件,以免未来的数小时或数天之内磁盘空间不足导致下载失败。 Ext4 在文件系统层面实现了持久预分配并提供相应的 API(libc 中的 posix_fallocate()),比应用软件自己实现更有效率。

13. 默认启用 barrier。 磁 盘上配有内部缓存,以便重新调整批量数据的写操作顺序,优化写入性能,因此文件系统必须在日志数据写入磁盘之后才能写 commit 记录,若 commit 记录写入在先,而日志有可能损坏,那么就会影响数据完整性。Ext4 默认启用 barrier,只有当 barrier 之前的数据全部写入磁盘,才能写 barrier 之后的数据。(可通过 "mount -o barrier=0" 命令禁用该特性。)