[使用技巧] 【转自无约】简单聊几句Win8光盘制作环境、制作工具

制作目标
要做什么样的光盘,叫制作目标。比如,要做Win8光盘,你必须弄明白是要制作32位(X86)的还是64位(X64或AMD64)的? 这要搞清楚。如果你见到有些unattend.xml文件中有amd64字样,那就是64位(X64)的,说明这个XML文件不能用于32位光盘之中。
制作目标中,最重要的是处理install.wim这个WIM文件,多语言版本还要涉及到boot.wim。

制作环境
制作环境就是你正在使用的操作系统平台,没有一个平台你怎么制作?老旧的平台也是不行的,在XP系统下制作WIN8光盘是不能想象的。
现在WIN8流行DISM,对操作环境要求相对高些,制作目标是32位的WIN8,通常要在32位的制作环境下,这里面包括:32位的VISTA/SERVER2008/WIN7/WIN8,更高的版本当然更好一些,也就是说制作32位的WIN8光盘最好是在WIN8操作系统平台上进行,这样不容易缺东西。比如要用DISM工具,不能用WIN7的DISM,要用WIN8自己的DISM。如果是WIN7平台,那么你得安装相应的工具,这些工具会带有更新一代的工具版本。

制作工具
WIN7时代,DISM和IMAGEX各有各的功能。现在,微软不太喜欢IMAGEX了,WIN8时代的DISM工具(版本号6.2.9200)整合进原有IMAGEX的功能,也就是说基本取代了IMAGEX。不过,如果你安装了ADK,你会发现微软并没有完全抛弃IMAGEX,在C:Program Files(X86)Windows Kits8.0Assessment and Deployment KitDeployment Toolsamd64或X86DISM目录中,仍有9200的IMAGEX可以使用,它可能更多地用于处理WIN7或VISTA时代的WINDOWS映像。
制作工具也是有区分32位和64位的,如果你制作32位(X86)的WIM文件,当然是用32位的DISM,且在32位的操作环境中进行。以前WIN7时代的IMAGEX会稍微灵活一些。比如,我可以在64位的平台上,使用64位的IMAGEX处理32位的WIM工具。
现在WIN8了,微软的技术资源库一如既往的长且复杂,还不少是英文。翻翻细看,可能大家会觉得累,现在是快餐时代,可以理解。我本人也懒得去看,不过我想这些制作目标、制作环境(平台)、制作工具对应对称总不会是错的吧。

使用DISM时要注意以下对应关系:
制作环境(32位)---制作工具(32位)---制作目标(32位)
制作环境(64位)---制作工具(64位)---制作目标(64位)

批处理仅使用IMAGEX时,要注意以下对应关系:
制作环境(32位)---制作工具(32位)---制作目标(32位或64位)
制作环境(64位)---制作工具(64位)---制作目标(64位或32位)

低版本系统安装高版本部署工具问题
对于WIN8来说,相对低些又相对接近的系统平台是WIN7。在WIN7平台上制作、修改WIN8的WIM文件,一定会用到ADK工具(通常用到第二项第三项)。默认目录是C:Program FilesWindows Kits,如果是安装在64位的WIN7中,则是C:Program Files(X86)Windows Kits目录。A与B是在32位的WIN7中安装ADK会出现的目录。C和D是在64位的WIN7中安装ADK会出现的目录。

A   64位的DISM和IMAGEX工具在
C:Program FilesWindows Kits8.0Assessment and Deployment KitDeployment Toolsamd64DISM目录下。

B    32位的DISM和IMAGEX工具在
C:Program FilesWindows Kits8.0Assessment and Deployment KitDeployment ToolsX86DISM目录下。

C   64位的DISM和IMAGEX工具在
C:Program Files(X86)Windows Kits8.0Assessment and Deployment KitDeployment Toolsamd64DISM目录下。

  32位的DISM和IMAGEX工具在
C:Program Files(X86)Windows Kits8.0Assessment and Deployment KitDeployment ToolsX86DISM目录下。

使用DISM时要注意以下对应关系:
制作环境(32位)---制作工具(32位) B ---制作目标(32位)
制作环境(64位)---制作工具(64位)  D ---制作目标(64位)

微软软件运行库下载 (DirectX,.NET Framework,VC++库..) 转

运行库是程序在运行时所需要的库文件,运行库中一般包括编程时常用的函数,如字符串操作、文件操作、界面等内容。不同的语言所支持的函数通常是不同的,所以使用的库也是完全不同的,这就是为什么有VB运行库、C运行库、Delphi运行库之分的原因。即使都是C++语言,也可能因为提供的函数不同,而使用不同的库。如VC++使用的运行库和C++ Builder就完全不同。………………以上介绍完全可以忽略,普通用户基本看不懂,你只需要知道什么情况下需要安装微软软件运行库就OK了!
VC++库 (Microsoft Visual C++):用精简版系统或者一些绿色软件经常遇到的问题 “由于应用程序配置不正确,应用程序未能启动” 出现这种情况需要安装对应的Microsoft Visual C++就能解决。
Microsoft Visual C++ 2005下载:32位版本 | 64位版本
Microsoft Visual C++ 2005 SP1下载:32位版本 | 64位版本
Microsoft Visual C++ 2008下载:32位版本 | 64位版本
Microsoft Visual C++ 2008 SP1下载:32位版本 | 64位版本
Microsoft Visual C++ 2010下载:32位版本 | 64位版本
Microsoft Visual C++ 2010 SP1下载:32位版本 | 64位版本
提醒:Windows 8 / Windows7中已经包含Microsoft Visual C++ 2008
Microsoft .NET Framework:运行软件出现 不是有效的win32程序 错误提示时,请安装下面的.Framework 就可以解决。一般软件都会有提示要安装什么版本的.NET Framework
Microsoft .NET Framework 2.0下载:32位版本 | 64位版本
Microsoft .NET Framework 3.5下载:32位版本
Microsoft .NET Framework 3.5 SP1下载:32位版本 | 32+64位
Microsoft .NET Framework 4下载:32+64位
Microsoft.NET Framework 4.5 RC下载:点击下载
DirectX End-User Runtimes:玩游戏必备的支持库 DirectX End-User Runtimes,通常遇到缺少DirectX,DXDXXX.DLL等文件时候,更新DirectX就能解决。
DirectX End-User Runtimes下载:点击下载
Windows Installer:一般来说原版系统是不会出现Windows Installer服务错误这个问题,除非是精简版,Ghost之类的系统容易遇见。重新安装Windows Installer一般都能解决。
Windows Installer 4.5 Redistributable下载:官方下载

阿里云云计算自助服务开篇[转]

阿里云云计算自助服务开篇[转]

视频教程:
1、VNC远程连接Linux服务器(适用centos6.2×64):http://help.aliyun.com/manual?spm=0.0.0.115.xJq6Ml&helpId=1650
2、Putty远程连接Linux服务器:http://help.aliyun.com/manual?spm=0.0.0.114.QSCEFQ&helpId=1648
3、通过远程桌面访问Windows服务器:http://help.aliyun.com/manual?spm=0.0.0.116.gOBVAo&helpId=1652

4、Xshell远程连接Linux服务器:http://help.aliyun.com/manual?spm=0.0.0.115.xQ4aEp&helpId=1654
5、SecureCRT远程连接Linux服务器:http://help.aliyun.com/manual?spm=0.0.0.116.pfXAo4&helpId=1658

工具

1、工具名称:update_yum_source.sh
功能:更新系统的yum源为163的yum源
适用系统版本:线上centos5/6系列,redhat5系列,兼容32位和64位
执行方法:以root身执行命令,bash update_yum_source.sh
解决了什么问题:一键式更新yum源,省去了复杂的命令和步骤

2、工具名称:update_time.sh
功能:修正时区,修改ntp配置,同步时间,修改ntp服务启动模式
适用系统版本:兼容线上所有linux版本
执行方法:以root身执行命令,bash update_time.sh
解决了什么问题:一键式修正系统时间不同步的问题,省去了复杂的命令和步骤

3、工具名称:auto_fdisk.sh
功能:自动检测是否有尚未分区的数据盘,格式化新的数据盘并自动挂载
适用系统版本:兼容线上所有linux版本
执行方法:以root身执行命令,bash auto_fdisk.sh
解决了什么问题:一键式检测是否有尚未分区的数据盘,并能对其格式化和自动挂载,省去了复杂的命令和步骤

案例分享

案例1:

问题:缺少.net2.0和vc9导致无法安装某些软件。
现象:用户无法安装公司软件。
分析过程及解决方案:
我方工程师在测试机上安装.net 2.0  后运行客户提供的软件,分析系统日志信息。

由此可以得出还缺少VC,去下载VC9:http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=29 安装后再安装客服提供给我们的软件即可以成功。

案例2:
问题:ftp主动被动模式配置混乱导致无法登录。现象:用户反馈ftp无法登陆,ssh登陆是正常的,在登陆ftp的时候提示错误:连接接受发送的数据确认失败,新建ftp站点同样有提示错误:服务器端接口异常,ftp站点添加失败。
分析过程及解决方案:我们入机器后查看,确认是/etc/vsftpd/vsftpd.conf,用户主动模式和被动模式设置错误导致。
在/etc/vsftpd/vsftpd.conf文件里用户的源文件是这样的:
listen=YES
anonymous_enable=NO
use_localtime=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=NO
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO
idle_session_timeout=180
data_connection_timeout=120
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to  www.net.cn FTP service.
chroot_list_enable=YES
chroot_list_file=/etc/ftpchroot
ls_recurse_enable=YES
pam_service_name=vsftpd
userlist_enable=YES
log_ftp_protocol=YES
max_per_ip=3
pasv_enable=YES
pasv_max_port=30000
pasv_min_port=30000设置出错的原因分析
在上述/etc/vsftpd/vsftpd.conf文件中connect_from_port_20=YES   是 当主动模式开启的时候,是否启用默认的20端口监听的意思
pasv_enable=YES
pasv_max_port=30000
pasv_min_port=30000这个是用被动模式进行设置

被动模式正确设置为:
PASV_enable=YES   开启被动模式
PASV_min_port=%number% 被动模式最低端口
PASV_max_port=%number% 被动模式最高端口
用户的被动模式的端口最低和最高都是30000,所有pasv_max_port=30000  pasv_min_port=30000是配置错误的。
2.解决方案:

1)我们将connect_from_port_20=YES这话主动模式的注释掉

2)修改被动模式配置
pasv_enable=YES
pasv_max_port=30000
pasv_min_port=30000
改为
pasv_enable=YES
pasv_max_port=30000
pasv_min_port=25000

3)重启vsftp后可以登录。
3.关于ftp的主动模式和被动模式设置可以参考百度

案例3

问题:ssh配置存在问题,导致登录和传输数据很慢。现象:有位用户反馈在我们阿里云买了2台服务器,通过内网传输数据和ssh登陆都非常的慢,怀疑我方内网通信有问题,要我方排查。
分析过程及解决方案:经过排查发现是用户的服务器内ssh的配置文件设置导致。/etc/sshd/sshd_config配置文件中的UseDNS设置为yes,修改为no即可。

解释下UseDNS,当客户端试图登录SSH服务器时,服务器端先根据客户端的IP地址进行DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,验证与其原始IP地址是否一致,这是防止客户端欺骗的一种措施,但一般我们的是动态IP不会有PTR记录,打开这个选项不过是在白白浪费时间而已,不如将其关闭。

Linux的文件系统层次结构

对于任何一种操作系统,文件系统都是其最为重要之一环,Linux也不例外。

对于使用惯了Windows的人来说,Linux的文件系统可能也是最难以理解的部分之一了,所以今天要重点讲一下。

那么什么是文件系统呢?简单来说,你有一块硬盘,并通过操作系统去使用它,那么操作系统会在逻辑层面上用一种固定的方式去在这块硬盘上组织数据。之所以说是逻辑层面的东西是因为文件系统这一层与具体如何操作硬盘的驱动程序层是分开的。也就是说,文件系统的实现代码关心的是数据如何组织起来,是逻辑层面的;而驱动程序关心的是如何将每一字节的数据存到硬盘的某一个位置。这种逻辑上的组织方式就是文件系统了。

换言之,文件系统就是一种在存储设备上(譬如硬盘)存储与读取解析数据的协议。

拿我们熟悉的Windows来说吧,Windows的文件系统很简单,将硬盘分为几个分区,分别标上C,D,E等英文字母作为它的标示。其中A,B分给软驱,现在已经不常见了;光盘也标上一个字母;如果你插入了一些即插即用的存储设备,比如U盘,移动硬盘等,也会为它们每一个分区标上一个英文字母。然后每一个分区都采取阶层式树状目录结构,,也就是一个文件夹下面套一个文件夹,看起来像一棵树一样。

然后我们要储存一个名为1.txt的文件在C盘下,Windows就用固定的方式在C盘下建立一个名为1.txt的文件,并将数据存储在硬盘上,还给它分配一个唯一的绝对路径,方便文件的存取,这个路径就是C:1.txt了。

这个就是Windows的文件系统了。也就是Windows组织文件的方式。

这样应该就能理解文件系统是什么了。

那么接下来讲Linux的文件系统了。

下面就是Linux文件系统完整的体系结构,我先不做解释,大家也不用懂,因为我今天基本只讲用户那一层的东东。

首先呢,介绍几个术语,也是概念。

目录,是类UNIX操作系统和DOS下的术语,也就是Windows里的文件夹。

挂载,在Linux下面将一个文件系统和一个存储设备关联起来叫做挂载。

块设备,就是以块(比如磁盘扇区)为单位收发数据的设备,它们支持缓存和随机读取,比如硬盘,CD等等。

介绍完术语接下来是详细讲解。

首先Linux也采用的是阶层式树状目录结构(别以为树状目录结构是天经地义的,这个是UNIX的发明,UNIX同时代或者稍后一点的操作系统都是没有目录概念的,所有文件放在一起,包括在DOS之前统治PC的CP/M操作系统)。

但是Linux和Windows不一样,它有一个VFS也就是虚拟文件系统(Virtual File System),再上一张图里面有一个节点缓存和目录缓存,就是VFS的一部分了。为什么说是虚拟文件系统呢?这点就和Windows大不一样了。Windows是将目录结构完完全全存储在硬盘上的,读取的时候从硬盘读取,修改的时候直接修改硬盘。而Linux不一样,它有一个虚拟的目录表,其中一部分是存储在硬盘上的,一部分储存在内存里,为什么要这样,我接下来会讲。

Linux文件系统的最上层是 / ,被称为根目录,也就是一个目录树的树根。然后其下可以建立其它的目录。

与Windows不同,Linux有严格的目录使用规定,不同目录用来干不同的事。而Windows其实也有,都在C盘里,只不过都一切帮你包办了…………

接下来介绍每个目录的作用,大家可以和自己的Linux对照一下。

/ :不用说了,根目录,所有目录的起点。
/bin :binary的缩写,顾名思义了,也就是存放二进制文件的地方,一般放一些所有用户都用的,不影响系统的基本程序,也就是基础系统的基础命令。
/boot :这个意义更明显了,就是存放引导文件的地方。还有GRUB和LILO(都是Linux的启动管理器)也放在这。
/dev :设备文件的目录。
/etc :放系统配置文件的地方。
/home :普通用户的目录,一般没有特殊情况会在这个目录下建立一个以用户名为名字的目录,普通用户只能操作这个目录的东西,系统目录只有root能够操作。
/lib :library的缩写,存放库文件,也就是一系列的函数库。
/mnt :挂载文件系统的地方,一般会建立一个子目录(Fedora发行版使用的是/media)
/opt :optional的缩写,表示可以选择,有些自定义软件包会安装在这,供较大而且固定的应用程序存放文件。
/proc :procedure的缩写,存放进程信息,硬件信息,内核信息的地方。
/root :root用户的主目录。
/sbin :大多数系统管理程序的存放地,一般只有root用户才能执行(shutdown就在这下面,普通用户的PATH环境变量可能不包括这个目录)。
/tmp :存放临时文件的地方,还有Slackware的SlackBuild会使用这个目录。
/usr :存放程序的目录,一般存放非系统应用程序,在这下面也有etc等子目录存放普通应用程序的配置文件。user的缩写,就是存放用户后来安装的程序的地方了。一般系统安装后安装的软件都在这。
/var :一个经常变动的目录,作用很多,一时也讲不清楚了…………

解释了各个目录的作用后,就要讲解普通人最难以理解也是Linux最具有魅力的东西了,那就是VFS。

看了那么多讲解,细心一点的人可能会问,Linux是不是不分区的啊?

乍看是的,所有的东西都放在根目录底下。但是实际上并非如此。

所有的类UNIX操作系统都使用这种VFS的机制。

我之前介绍过一个术语,挂载,将一个文件系统和一个存储设备关联起来。Linux是使用挂载的。也就是你可以将硬盘上的任何一个分区挂载到Linux的任何一个目录上,然后就可以通过那个目录访问这个设备了。

为什么要这样呢?因为UNIX有一个统一性思想:一切皆文件(包括目录,也是一种特殊的文件)。

Linux将整个文件系统树存储在内存里,就是那个目录缓存。挂载就是将这个文件系统树上的一个目录与一个设备连接起来。要知道,/ 、/dev、/proc、都不是硬盘上实际存在的目录,而是Linux在内存中虚构出来的,所以叫做虚拟文件系统。

Linux将一切的硬件都化为一个文件存储在/dev目录中。比如说你的IDE硬盘以hda,hdb等名字储存,SATA硬盘则以sda,sdb等名字存储,终端设备(可以理解为屏幕)以tty这个名字存储,甚至打印机、网卡等一切的硬件设备都会在/dev中有一个对应的文件。

然后对于一个硬盘上的分区,比如sda这块硬盘的分区,Linux会将每一个分区给一个数字标示,比如第一个分区叫sda1,第二个是sda2…………依次类推。你要使用这个分区了就将sda1与一个目录对应起来,将sda2与另一个目录对应起来。比如说我将/dev/sda1挂载到/mnt/win7上,那么你就可以通过访问/mnt/win7来访问这个分区的数据了,非常方便。

现在许多Linux的发行版都会提供自动挂载,不用我们手动挂载Windows的分区了。

那么这样有什么好处呢?

好处就在于用户不用关心设备层面的具体操作就可以使用相应的硬件了。

比如我们在Linux使用C编程,通常会使用Linux的系统调用。举例说,有一个系统调用叫write,顾名思义,功能就是写入。它可以将数据写入一个已经打开的文件。如果是普通的文件可以理解,那如果打印机也是一个文件呢?你用write向对应打印机的那个文件写入数据,不就是在打印机上打印了吗?同理,你向一个代表屏幕的文件写入数据,不就代表在屏幕上输出了吗?

好了,点到为止。

通过这种手段,所有的硬件对于用户而言都可以看成文件,那我们就可以用同一种手段去操纵它。不然,想使用打印机了,打印机有它的读写方式;想读写屏幕了,屏幕又有它的读写方式;想读写硬盘了,硬盘又有它的读写方式…………你要记住多少才够呢?

这样,一切的硬件都简化为文件了,只要你装了驱动程序,你不用关心如何去操作硬件了,所有的硬件都可以使用标准的系统调用解决,这不是很easy,很happy的事吗?

还有那个/proc目录,这也不是实际存储在硬盘上的,而是存储在内存里的。它将所有的硬件信息,进程信息,内核信息都转变为普通的文本文件,这样我们可以毫无障碍地去了解这些信息,因为它们都是普通的文本文件啊。

比如说你想要知道一个进程的信息只要读取相关的文件就可以了,不是很简单吗?

这样你在编程的时候,怎么了解硬件信息呢?不用去记那种又艰涩又长的API只要用read系统调用读取/proc目录下的信息就可以了,不是很简单吗?

所以,Linux也是一个开发者友好型的系统啊。当你熟悉了之后,就会对Windows下的编程方式深恶痛疾了。

这就是我上一节提到的UNIX的KISS准则的一个体现啊。

好了,当你在这里有了顿悟,那么你就理解了Linux的文件系统了。

记住,Linux(其实是UNIX)的一个统一性原理————一切皆文件。

看到这里,你可能觉得Linux的文件系统看起来很复杂,其实不然。Linux有一切皆文件的统一性原理,当你懂得了之后,你会发现Linux的文件系统其实比Windows不知道简洁到哪里去了————因为在Linux中一切都是文件,没有任何的特例,不用记住任何例外的东西,而Windows则处处是特例啊。

要知道,大家之所以认为Windows简单是因为习惯于Windows了,而其实Linux是更简单的!