鉴于我每次安装win7都是在用bootcamp的情况下,随之而来带来的问题就是,只有一个分区,这让我很苦恼。所以到最后我往往都是直接用虚拟机算了。
本文来自CU,本人目前没有测试过,先备着,万一哪天我又心血来潮了,我就用它来试一下(原文来自:http://bbs.chinaunix.net/thread-4166135-1-1.html)
本帖最后由 xinyv 于 2015-01-12 12:15 编辑
2015年元旦macbook air 安装记录
目的:
1、air 安装双系统 Yosemite + win7
2、win7 多分区
3、单U盘安装
准备:
16G U盘一个usb3.0
制作安装U盘:
1、下载最新的 MacOS Yosemite 10.10.1, win7sp1
下载yosemite必须用 mac app store 下载,我下载的版本
yosemite 10.10.1 md5:e37ac9e9c79de428529c6933419ee5ff
win7sp1_x64.iso md5:480b62c3acd6c8a36b18d9e906cd90d2
2、制作 win7 安装盘
打开 Launchpad -> 其他 -> Boot Camp 助理,点击继续,选择创建 Windows 7 或更高版本的安装盘 和 从 Apple下载最新的Windows 支持软件,点击继续,选取你的 win7 的iso镜像,然后点继续,速度快慢就看你的网速是否给力了。
制作完之后,找另一个 windows 系统,插上 U盘,在硬盘上新建一个文件夹,把U盘里面所有的文件都拷贝进去,这时候,你可以用U盘引导一下air 试试,(插入U盘,启动的时候按 option,选择WININSTALL)你会发现键盘鼠标都不能用,查资料是因为新款air使用了usb3.0 win7默认没有驱动
安装驱动,参考链接 http://bbs.feng.com/read-htm-tid-8541291.html
安装驱动其实就是编辑 boot.win 和 install.win 这两个文件
创建二个文件夹m1、m2 用来 mount上面的两个文件 (cmd 命令)
然后从刚才的备份中挂载 boot.win 和 install.win 我备份的目录是 D:\uu
XML/HTML代码
- dism /mount-wim /wimfile:d:\uu\source\boot.wim /index:2 /mountdir:m1
- dism /mount-wim /wimfile:d:\uu\sources\install.wim /index:4 /mountdir:m2
添加usb3.0驱动
XML/HTML代码
- dism /image:m1 /add-driver /driver:d:\uu\$WinPEDriver$\IntelxHCISetup\Drivers\xHCI\Win7\x64\iusb3hub.inf
-
- dism /image:m2 /add-driver /driver:d:\uu\$WinPEDriver$\IntelxHCISetup\Drivers\xHCI\Win7\x64\iusb3hub.inf
-
- dism /image:m1 /add-driver /driver:d:\uu\$WinPEDriver$\IntelxHCISetup\Drivers\xHCI\Win7\x64\iusb3xhc.inf
-
- dism /image:m2 /add-driver /driver:d:\uu\$WinPEDriver$\IntelxHCISetup\Drivers\xHCI\Win7\x64\iusb3xhc.inf
-
- dism /image:m1 /add-driver /driver:d:\uu\$WinPEDriver$\IntelxHCISetup\Drivers\HCSwitch\Win7\x64\iusb3hcs.inf
-
- dism /image:m2 /add-driver /driver:d:\uu\$WinPEDriver$\IntelxHCISetup\Drivers\HCSwitch\Win7\x64\iusb3hcs.inf
提交修改,umount 文件
XML/HTML代码
- dism /unmount-wim /mountdir:m1 /commit
- dism /unmount-wim /mountdir:m2 /commit
- rmdir m1 m2
把 U 盘卸载,重新插到 air 上面
3、制作 air 安装U盘
打开 Launchpad -> 其他 -> 磁盘工具,把U盘的信息全部抹掉,包括默认分区也要删除,然后重新创建U盘分区,创建的时候选择主引导记录,分两个区,第一个是 win_setup文件系统类型选 exfat,第二个选 MacOS 日志文件系统,第一个一定要是 windows 分区
参考链接:http://bbs.feng.com/read-htm-tid-2628649.html
以前直接用下载的 dmg 制作就可以,新版系统的制作方式已经变化了
打开Finder-应用程序,找到安装OS X Yosemite,右键-显示包内容,依次点开Contents-SharedSupport文件夹,你会发现一个InstallESD的DMG文件,双击打开这个文件,你会看到一个文件夹 Packages
下面打开终端输入
XML/HTML代码
- defaults write com.apple.finder AppleShowAllFile -bool true
- killall Finder
如果这条命令提示错误,你可以把后面的 -bool true 改成 YES,实在不行就 man 一下
执行成功以后在看看刚才那个文件夹,多出了几个隐藏文件 BaseSystem.dmg
打开 Launchpad -> 其他 -> 磁盘工具,选择 u 盘,选恢复
把左侧的 u 盘拖到目标盘那里,把刚才我们看到的隐藏文件 BaseSystem.dmg 拖到源磁盘那里,然后点恢复。恢复完成以后,把 BaseSystem.dmg 和 BaseSystem.chunklist 拷贝到 u 盘苹果系统分区的根目录里面,然后进入 System\Installation 删除 Packages 这个链接,把 InstallESD 下面的 Packages 文件夹拷贝到这里来。拷贝 BaseSystem 哪两个文件不能省略,省略之后引导系统的时候会提示 undefined error 0
把系统文件在恢复隐藏
XML/HTML代码
- defaults write com.apple.finder AppleShowAllFile -bool false
- killall Finder
到此 Yosemite 的安装盘制作完成,我发现在 air 上按照上面的方法制作都可以成功,但在 pro 上制作安装盘失败。原因还没有找到
参考链接:http://mac-how-to.wonderhowto.co ... 0-yosemite-0155306/
4、多系统安装盘制作
把刚才制做好的 U盘插到刚才我们备份的 win系统上,利用 Windows7-USB-DVD-Download-Tool 工具和 win7 iso 创建一个win 安装 U盘,使用第一个我们预留的分区,制作完成以后,拷贝刚才我们备份的 uu 下的所有文件,直接覆盖进 u盘的 win 分区。拷贝完数据,安装盘就制作完成了。下面就是安装系统了。
5、安装系统
因最前面有一个 200M 的 efi 分区,最后又有一个 Recovery 分区,在加上苹果系统自己占用的一个分区,win7 就只剩下一个分区了,网上说的总总办法,比如删除 Recovery,扩展那个 efi 分区,在10.10.1 上测试均有问题,不是 mac 系统找不到就是 win7 起不来,经多多次测试,发现一个折中的方案
在重装系统的时候,直接提前分区,我分了 三个区,
第一区 WinOS
第二区 data
第三区 MacOS
这么分区的原因是 win7 会在最前面放一个 200 M的 efi,MacOS 会在最后面放一个 Recovery,这样前后都有系统分区把数据分区和功能分区隔离开,不容易损坏,分区之后用U盘引导,先安装 Yosemite,安装在最后一个分区,安装完以后在重新引导安装 win7,这时候你会发现 Recovery 被挤出了主分区表,Win7 看到的是未分配空间,不用搭理他,反正不是给你win7 用的,不认识就不认识吧,然后安装win7,安装 boot camp。安装好以后你会发现虽然 win7不认识,然这并不影响mac系统,启动的时候按 option ,你就会发现Recovery 仍旧是可以使用的,而且因为他被挤出去的原因,我们现在又多了一个分区名额,你可以增加一个扩展分区,然后在分若干个盘了。
至此,air就安装完了,我们保留了所有默认分区,而且 win7 支持多分区,单U盘安装双系统,多分区目的完成
最近在大卫的指点下开始摸Java了。但我其实更擅长的是PHP,所以现在就开始混用了,那混用的最佳搭配是resin(其实apache+resin插件也OK)。不过纯resin的话也就意味着可以直接混用java的数据了。而不是采用接口调用的方式。
在mac下安装resin是有点麻烦的,官方的教程就几句话,参考 :http://www.caucho.com/resin-4.0/admin/starting-resin-install.xtp,
XML/HTML代码
- Next we'll change into the Resin directory we just unpacked to configure and build the server. The Java portions of Resin are already compiled, but this step will build additional C-based components of Resin that provide additional functionality such as:
-
- A faster IO library, including massive keepalive support *
- Support for OpenSSL *
- The ability to run as a non-priviledged user for security
- Connector modules for Apache
- (* only available in Resin Professional)
然后官方的文档就提示你,configure一下就OK了。不过解开压缩包发现,configure没有可执行权限,只能先chmod +x ./configure。
我第一次是按照官方的例子来的,即:
XML/HTML代码
- ./configure --prefix=/usr/local/share/resin \
- --with-resin-root=/var/resin \
- --with-resin-log=/var/log/resin \
- --with-resin-conf=/etc/resin
但后面在运行的时候,一会提示log文件写不了,一会提示app目录不能创建,虽然chown改了权限 后就OK了,但总是有点小问题。去网上找了一下,发现了:http://www.cnblogs.com/jmtbai/p/4394424.html,它在内容里就有说:
XML/HTML代码
- ./configure -prefix=/Users/emma/Documents/workspace/resin-pro-4.0.43 -enable-64bit-jni
-
- /Users/emma/Documents/workspace/resin-pro-4.0.43为最终resin被安装的目录,这个目录需要指定,不然默认就是/var/share/resin下,这个读resin.xml文件时会有问题
果然我把prefix改成我的路径就OK了。(上面的-prefix是不对的,是--prefix)。
顺利的将项目运行了起来,同时写了个test.php,居然也OK了。(现在是知其然不知其所以然,先用起来再说了)
本来不想转,但真心是有用,以前的方法也有点过时,而且主要是不方便,所以就来贴个更全的。这种问题非常容易 遇到,用ubuntu、debian在阿里云上,原来都正常的,你只要一apt-get update一下,原来的LC环境就全没了。
原文地址在:http://perlgeek.de/en/article/set-up-a-clean-utf8-environment , 我上一次写关于这个的问题是在2012年了,那篇的标题是:perl: warning: Setting locale failed. 也可以看一下
How to set up a clean UTF-8 environment in Linux
Many people have problems with handling non-ASCII characters in their programs, or even getting their IRC client or text editor to display them correctly.
To efficiently work with text data, your environment has to be set up properly - it is so much easier to debug a problem which has encoding issues if you can trust your terminal to correctly display correct UTF-8.
I will show you how to set up such a clean environment on Debian Lenny, but most things work independently of the distribution, and parts of it even work on other Unix-flavored operating systems like MacOS X.
Choosing an encoding
In the end the used character encoding doesn't matter much, as long as it's a Unicode encoding, i.e. one which can be used to encode all Unicode characters.
UTF-8 is usually a good choice because it efficiently encodes ASCII data too, and the character data I typically deal with still has a high percentage of ASCII chars. It is also used in many places, and thus one can often avoid conversions.
Whatever you do, chose one encoding and stick to it, for your whole system. On Linux that means text files, file names, locales and all text based applications (mutt, slrn, vim, irssi, ...).
For the rest of this article I assume UTF-8, but it should work very similarly for other character encodings.
Locales: installing
Check that you have the locales
package installed. On Debian you can do that with.
$ dpkg -l locales Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii locales 2.7-18 GNU C Library: National Language (locale) da
The last line is the important one: if it starts with ii
, the package is installed, and everything is fine. If not, install it. As root, type
$ aptitude install locales
If you get a dialog asking for details, read on to the next section.
Locales: generation
make sure that on your system an UTF-8 locale is generated. As root, type
$ dpkg-reconfigure locales
You'll see a long list of locales, and you can navigate that list with the up/down arrow keys. Pressing the space bar toggles the locale under the cursor. Make sure to select at least one UTF-8 locale, for example en_US-UTF-8
is usually supported very well. (The first part of the locale name stands for the language, the second for the country or dialect, and the third for the character encoding).
In the next step you have the option to make one of the previously selected locales the default. Picking a default UTF-8 locale as default is usually a good idea, though it might change how some programs work, and thus shouldn't be done servers hosting sensitive applications.
If you chose a default locale in the previous step, log out completely and then log in again. In any case you can configure your per-user environment with environment variables.
The following variables can effect programs: LANG, LANGUAGE, LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, LC_PAPER, LC_NAME, LC_ADDRESS, LC_TELEPHONE, LC_MEASUREMENT, LC_IDENTIFICATION.
Most of the time it works to set all of these to the same value. Instead of setting all LC_ variables separately, you can set theLC_ALL
. If you use bash as your shell, you can put these lines in your ~/.bashrc
and ~/.profile
files:
export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8
To make these changes active in the current shell, source the .bashrc:
$ source ~/.bashrc
All newly started interactive bash processes will respect these settings.
A Warning about Non-Interactive Processes
There are certain processes that don't get those environment variables, typically because they are started by some sort of daemon in the background.
Those include processes started from cron, at, init scripts, or indirectly spawned from init scripts, like through a web server.
You might need to take additional steps to ensure that those programs get the proper environment variables.
Locales: check
Run the locale
program. The output should be similar to this:
LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8
If not you've made a mistake in one of the previous steps, and need to recheck what you did.
Setting up the terminal emulator
Setting up the terminal emulator for your terminal emulator strongly depends on what you actually use. If you use xterm
, you can start it as xterm -en utf-8
, konsole and the Gnome Terminal can be configured in their respective configuration menus.
Testing the terminal emulator
To test if you terminal emulator works, copy and paste this line in your shell:
perl -Mcharnames=:full -CS -wle 'print "\N{EURO SIGN}"'
This should print a Euro sign €
on the console. If it prints a single question mark instead, your fonts might not contain it. Try installing additional fonts. If multiple different (nonsensical) characters are shown, the wrong character encoding is configured. Keep trying :-).
SSH
If you use SSH to log in into another machine, repeat the previous steps, making sure that the locale is set correctly, and that you can view a non-ASCII character like the Euro sign.
Screen
The screen program can work with UTF-8 if you tell it to.
The easiest (and sometimes the only) way is to start it with the -U
option:
$ screen -U
and also when detaching (screen -Urd
or so).
Inside a running screen you can try Ctrl+a :utf8 on<return>
. If that doesn't work, exit your screen and start a new one with -U
There's a complete guide for setting up irssi to use UTF-8, which partially overlaps with this one. The gist is:
/set term_charset utf-8 /set recode_autodetect_utf8 ON /set recode_fallback ISO-8859-15 /set recode ON