星期二, 十二月 08, 2009
安装chromeOS至本地硬盘
分出两个空闲的ext3分区,分别设置卷标为C-STATE(hd0,7)、C-ROOT(hd0,8),第一个是home目录(可写),第二个是根目录。
将挂载的rootfs.image下面的文件通通拷贝到C-ROOT下面,然后再将其中的home目录拷贝到C-STATE下面。
chromeOS系统已经被我们写入到物理磁盘中了,然后我们再用grub来引导,下面:
[code=bash]title chrome OS-fix
root (hd0,8)
kernel /boot/vmlinuz init=/sbin/init boot=local rootwait root=LABEL=C-ROOT ro noresume noswap i915.modeset=1 loglevel=1
initrd /boot/initrd.img[/code]
上面的引导实际上是根据rootfs.image/boot/extlinux.conf来写的。
ok,现在重启系统,就可以从grub来启动本地磁盘中的chromeOS了。
其实先不着急重启,我们可以顺便修改下网络,因为像我这里上网并不是dhcp分配IP的,而需要手动设置,不然只能登录毫无意义的脱机用户了。正如chromeOS是基于debian的,可以直接修改/etc/network/interfaces文件,顺便修改/etc/resolv.conf,添加DNS。
另外,也可以修改下默认的gtk主题,直接修改/etc/gtk2.0/gtkrc。
如果需要安装部分软件包,请直接chroot进入,然后dpkg。
以上仅供测试。
补充,根目录是只读系统,可能是google为了防止用户糟蹋乱了系统的缘故?就好像把debian 5.0升级到ubuntu 9.10一样?
home目录是可写的,但在U盘中却会重启后清理干净,本地磁盘不会。
还有就是,无法挂载ntfs。
星期二, 十一月 24, 2009
building google chromium OS
安装下面的依赖:
[code=bash]sudo apt-get install subversion pkg-config python perl g++ g++-multilib bison flex gperf libnss3-dev libgtk2.0-dev libnspr4-0d libasound2-dev libnspr4-dev msttcorefonts libgconf2-dev libcairo2-dev libdbus-1-dev wdiff lighttpd php5-cgi sun-java6-fonts git-core[/code]
然后,使用gclient获取chromiumos的源码目录(四百多兆):
[code=bash]mkdir chromiumos
cd chromiumos
gclient config http://src.chromium.org/git/chromiumos.git
gclient sync[/code]
编译脚本都在chromiumos/src/scripts下面,依次执行下面几个脚本:
[code=bash]./make_local_repo.sh[/code]
运行这个脚本之前,确保安装了reprepro,否则会提示找不到命令,这时,需要将chromiumos/repo目录删除才可以重新执行make_local_repro.sh脚本,汗~这个搞了好久Orz。
[code=bash]./make_chroot.sh[/code]
创建chroot编译环境后,需要下载chrome浏览器,改名为chrome-chromeos.zip并放到~/chromiumos/src/build/x86/local_assets,这个目录需要自己依次创建。
然后进入chroot环境:
[code=bash]./enter_chroot.sh[/code]
这时,可以创建一个脱机用户,为了防止没有网络链接的情况下无法登录:
[code=bash]cd ../platform/pam_google && ./enable_localaccount.sh USERNAME[/code]
再依次编译软件包和内核,创建磁盘镜像:
[code=bash]./build_platform_packages.sh
./build_kernel.sh
./build_image.sh[/code]
脚本执行完毕后,会如下提示:
Done. Image created in /home/yang/trunk/src/build/images/999.999.32809.061105-a1
然后会生成rootfs.image磁盘镜像,可以将该镜像转为虚拟机磁盘(vmdk):
[code=bash]./image_to_vmware.sh --from=~/Downloads/chromiumos/chromiumos.git/src/build/images/999.999.32809.061105-a1 --to=~/Downloads/chromiumos/chromiumos.git/src/build/images/999.999.32809.061105-a1/rootfs.vmdk[/code]
截图:
编译好的镜像:
在vmware没有体验到好处,看来要用到我的wind U100上网本了^^
更新(11.30):如果使用src/scripts/image_to_usb这个脚本来写入的U盘的话,U盘必须要大于1G(否则出现错误),而编译生成的镜像大小却小于1G。下面的方法可以将chromeOS镜像写入1G的U盘:
生成rootfs.vmdk虚拟机磁盘文件,然后用虚拟机加载vmdk镜像并启动ubuntu的livecd。目的是为了使用gparted来修改vmdk分区的大小。因为默认的vmdk里面有三个950Mb的分区,分别为C-STATE、SWAP、C-ROOT。先将中间的交换分区删掉,然后依次调整分区到下面的样子:
之后,退出虚拟机,在windows下用DGen(diskgen)打开vmdk文件,修改硬盘参数(终止柱面)为C-ROOT分区的终止柱面,如下:
修改前:
修改后:
然后右键点击vmdk磁盘,复制磁盘,选择源磁盘和目的磁盘拷贝即可。
更新(11.30晚),把wind U100从丁丁那里拿来,启动chromeOS很成功,系统性能很赞!但有个很大的弊端:因为某些因素(大家都清楚),部分google服务无法登陆。上图:
登陆界面:
在netbook中比虚拟机运行起来爽多了,很快速!哎~郁闷的某个墙啊~估计在chromeOS上市后该墙还不倒的话,chromeOS在中国发展看是够呛了。
更新(12.01):
默认chromeOS的网络为dhcp模式,若要自己修改IP的话,则需要挂载U盘,并修改/etc/network/interfaces,按照debian修改网络的方式即可。因为在U盘启动chromeOS后,根目录是只读的(home目录当然可写),所以不能修改任何文件,只能重启进入linux挂载U盘修改。还有就是,无法挂载NTFS文件系统,应该是编译内核的时候没有写入支持吧。这篇更新就是在台式机上使用chromeOS来写的,输入法为搜狗云输入法(输入有些迟缓),截图一张:
截图工具为scort,chromeOS当然没有预装,这是我在linux下用chroot方式安装到chromeOS中的。
星期三, 十一月 11, 2009
ubuntu启动选项
[code=bash]
menuentry "Ubuntu, Linux 2.6.31-15-generic" {
insmod ntfs
set root=(hd0,2)
search --no-floppy --fs-uuid --set 863c1b013c1aec45
loopback loop0 /ubuntu/disks/root.disk
set root=(loop0)
linux /boot/vmlinuz-2.6.31-15-generic root=/dev/sda2 loop=/ubuntu/disks/root.disk ro quiet splash
initrd /boot/initrd.img-2.6.31-15-generic
}
[/code]
星期二, 十月 27, 2009
不能容易的获取ubuntu的免费CD了
官方说的原因,一个是费用问题,5年内,canonical公司已经免费派送了数百万张CD(这得多少钱?汗!);另外一个原因是,不需要光盘就可以在线升级到最新版本的ubuntu。
这不是件坏事,因为每次派送来最新的ubuntu光盘后就想重装系统,安装最新版本,这完全没必要的。另外,多数的免费CD用户,大多是ubuntu光盘收藏家(甚至只是觉得好玩,贪小便宜),我曾经看到过一个用户收到的免费光盘有一大箱子(在06年的时候,可以一次派送10张光盘,而其中有for mac的,这些对大多数人来说根本就没用)。
现如今,我也收到了不少ubuntu免费光盘,最后一张是Kubuntu9.04,蓝色的封面,很好看,还有贴纸^^。
现在,免费获取光盘仅限于ubuntu团队,成员,已经刚刚认识ubuntu的人(重新注册ship账户?Orz)。
我们国人往往会贪图一些小便宜。
淘宝这里竟然有卖ubuntu免费CD的!
感谢ubuntu的免费光盘,让我掌握了很多linux基础知识。
星期一, 十月 19, 2009
在ubuntu9.10 beta上安装vmware Server
运行vmware-install.pl出现错误提示:Unable to build the vmmon module.
我的内核版本是2.6.31,可以到这里下载vmware-update-2.6.31-5.5.9.tar.bz2。
运行其中的runme.pl,运行的时候又报错了:
insmod: error inserting ‘/tmp/vmware-config0/vmmon.o’: -1 Unknown symbol in module.
出现这样的错误,就需要重新编译内核,打补丁了。
下载内核,解包,在方才下载的vmware-update-2.6.31-5.5.9.tar.bz2中有个2.6.31-export-init_mm.patch的补丁,打这个补丁的时候报错了,看了一下里面的内容,就是修改个内核源码中文件:
arch/x86/kernel/init_task.c
然后添加下面这一段:
EXPORT_UNUSED_SYMBOL(init_mm);
然后根据这个howto来编译内核,我编译出来的内核怎么350多MB?而且安装的时候出现了错误,但是并不影响使用,-_-!。
grub2认出并添加了内核选项,重启进入新内核中,重新运行runme.pl,编译安装就非常顺利了。
有用的链接:kernel_compilation_ubuntu,how-to-install-vmware-server-2-on-ubuntu-9.04,在ubuntu 9.04下安装vmware的成功经验,vmware-specific-specific-5-5-x-and-kernel-2-6-31。
创建/dev/null
[code=bash]mknod -m 666 /dev/null c 1 3[/code]
顺便提一下,/dev/zero可以这样恢复:
[code=bash]mknod -m 666 /dev/zero c 1 5[/code]
创建完毕后,还要修改权限:
[code=bash]chown root:root /dev/null /dev/zero[/code]
ps:回归ubuntu了。
星期日, 十月 11, 2009
android模拟器试用手记
测试了一下android,用起来,感觉比较混乱,或许是因为没有实机测试的缘故。
下载android的SDK,打开其中的tools目录,里面有个emulator文件,需要下面一步才能启动emulator:
进入CMD,进入tools目录,创建一个android虚拟设备,
android create avd -t 2 -n g1
//avd意思为android virtual device,-t 2为target参数,-n g1指随便填写的设备名称
//关于target id,具体可以使用命令android list targets来查看。
可以虚拟一个内存卡,插入到avd中,同上,使用命令,
mksdcard 1024M E:\android\sdcard.img //创建一个1G的内存卡
启动emulator,
emulator -avd g1 -sdcard E:\android\sdcard.img
启动后,便能使用其中的浏览器来上网,测试软件等。
要在模拟器中安装软件(apk),可以使用adbWin。
下载adbWin后,进入CMD,执行adb install package.apk就可以将软件包安装到模拟器中。另附几个adb命令:
adb devices //查看设备
adb install <apk文件路径> //安装软件
adb uninstall <软件名> //卸载软件
adb uninstall -k <软件名> //卸载软件但是保留配置和缓存文件
adb shell //登录设备shell
adb shell <command命令> //直接运行设备命令, 相当于执行远程命令
adb push <本地路径> <远程路径> //从电脑上发送文件到设备
adb pull <远程路径> <本地路径> //从设备上下载文件到电脑
附注:SDK1.6r1自带了谷歌拼音输入法,使用方法就是在输入框中,光标长按3秒钟,调出菜单选择。先汗一个-_-#,复杂。
另外模拟器旋转屏幕快捷键为Ctrl+F11。
本来打算让丁丁买HTC Dream的,不过经测试了一般,发现我们国内用户基本是用不了,因为android是基于linux系统的,而飞信,QQ,等我们常用的软件都没有官方版。我测试了一个叫做anFetion的飞信客户端,功能太单薄了,而且要命的是接入点不支持wap,只能使用NET和wifi。而android操作系统,在国内,相对于软件丰富的Symbian或winMobile等是非常受限制使用的。
不过丁丁没法使用,我还是非常喜欢的,因为android是基于linux系统的,非常容易开发,且最重要的是它是google的产品^^。
星期二, 十月 06, 2009
MySQL修改密码
一:修改密码:
格式:mysqladmin -u用户名 -p旧密码 password 新密码
实例:mysqladmin -uroot -p123456 password 123abc
上面将root 密码修改123abc,原密码为123456, -u,和-p后面是没有空格的
root如果开始密码为空则可以省略就密码:
mysqladmin -uroot -password ab12
二:MySQL(root用户)密码忘记重置
1、首先停止正在运行的MySQL进程
Linux下,运行 killall -TERM mysqld
Windows下:net stop mysql.或在任务管理器中结束mysql进程 。
2、以安全模式启动MySQL
Linux下,运行 /usr/local/mysql/bin/mysqld_safe –skip-grant-tables &
Windows下,在命令行下运行 X:/MySQL/bin/mysqld-nt.exe –skip-grant-tables
3、完成以后就可以不用密码进入MySQL了
Linux下,运行 /usr/local/mysql/bin/mysql -u root -p 进入
Windows下,运行 X:/MySQL/bin/mysql -u root -p 进入
4、更改密码
>use mysql
>update user set password=password(”新密码”) where user=”root”;
>flush privileges;
三:连接远程mysql
mysql -h124.238.116.123 -uroot -p123456
连接ip为124.238.116.123的mysql,用root登录,密码:123456
mysql -uroot -p123456
连接本地mysql
四:备份数据库:
mysqldump -uroot -p123456 –opt database_name>path/backup_name
database_name:要备份的数据库名
path/backup_name:备份文件的路径,如/home/database_name.sql
recover grub2 use liveCD
first,boot the liveCD.
then,open the terminal,and type this line:
sudo mount /dev/sda6 /mnt
sudo mount --bind /dev/ /mnt/dev
sudo chroot /mnt
update-grub
grub-install --recheck /dev/sda
sudo umount /mnt
sudo umount /mnt/dev
星期二, 九月 15, 2009
install squid on debian
apt安装squid,配置文件在/etc/squid/squid.conf。下面是简单的修改默认配置文件:
http_port 1234 #端口
#允许的网段
acl our_networks src 192.168.0.1/24
#设置our_networks访问权限
http_access allow our_networks
#设置访问密码
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
acl auth proxy_auth sdau
http_access allow auth
可以利用htpasswd来生成一个密码文件:
htpasswd -cb /etc/squid/passwd user password
星期二, 八月 04, 2009
星期一, 七月 27, 2009
星期三, 七月 22, 2009
星期三, 七月 15, 2009
NFS备份方案
以下的操作都是在root下进行。
NFS Server端:192.168.2.2
Web Client端:192.168.2.1
NFS Server端安装NFS服务:
apt-get install nfs-kernel-server nfs-common portmap
Web Client安装NFS 客户端:
apt-get install nfs-common portmap
在NFS Server端创建需要共享的NFS目录,并更改目录权限,如下:
mkdir /var/www_nfs
chown nobody:nogroup /var/www_nfs
修改/etc/exports,指定客户端IP和目录权限。
/var/www_nfs 192.168.2.1(rw,sync,no_root_squash,no_subtree_check)
然后运行命令exportfs -a,使之生效。
在Web Client端创建NFS挂载目录:
mkdir /var/www_nfs_client
挂载NFS服务器的共享目录:
mount 192.168.2.2:/var/www_nfs /var/www_nfs_client
添加到fstab中,以便自动挂载:
[code=bash]192.168.2.2:/var/www_nfs /var/www_nfs_client nfs rw,sync,hard,intr[/code]
使用rsync来同步所要备份的文件夹到NFS中,如下(增量备份):
rsync -avlR --delete /var/www /var/www_nfs_client
添加到crontab即可。
需要注意的是,挂载的nfs目录的权限,取决于/etc/exports文件,可以通过man 5 exports来查看帮助。
移动硬盘引导moblin2.0
引导工具为grub。
先创建一个空闲的ext3分区,然后挂载下载的moblin光盘镜像,拷贝镜像中的俩文件夹(isolinux,LiveOS)到新建的ext3分区中。
填写menu.lst如下字段:
title MOBLIN 2.0 Beta
root (hd1,1)
kernel /isolinux/vmlinuz0 root=CDLABEL=moblin rootfstype=ext3 ro liveimg quiet
initrd /isolinux/initrd0.img
注意的是,CDLABEL后面的“moblin”是新建ext3分区的卷标。
然后启动就ok了。
顺便发送几张截图:
样子很好看,X性能貌似不错,启动速度很快,桌面应用尽是gnome程序。
浏览器:
文件管理器:nautilus
终端:
摄像头,wifi,均可驱动,另外蓝牙没有尝试,应该没问题。
星期一, 七月 13, 2009
chrome OS是基于linux的。 linux上面没法使用工行的网银。 li...
linux上面没法使用工行的网银。
linux上面没法使用QQ来视频聊天。
linux上面没法使用很多windows下的东西。
所以,chrome OS固然非常期待,但是还是少不了windows。windows还是托拉斯。
星期一, 五月 18, 2009
解决Gmail中Delivery Status Notification问题
但是每每发送邮件均失败,然后在gmail中就有一封 “Delivery Status Notification ”的邮件,累计下来,数量惊人。
发送失败的原因很简单,因为debian中设置的mail账户不对。可以直接用crontab -e来添加你的mail账户如下:
MAILTO=yoyoliyang@gmail.com
如上,即可,从此gmail中清净了。
星期五, 五月 15, 2009
Crontab注意事项
# m------------ minute (0 - 59)
# h------------ hour (0 - 23)
# dom------------day of month (1 - 31)
# mon----------- month (1 - 12) OR jan,feb,mar,apr ...
# dow------------ day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
#
# * * * * * command to be executed
时间调度表格
| Entry | Description | Equivalent To |
|---|---|---|
@reboot | Run once, at startup. | None |
@yearly | Run once a year | 0 0 1 1 * |
@annually | (same as @yearly) | 0 0 1 1 * |
@monthly | Run once a month | 0 0 1 * * |
@weekly | Run once a week | 0 0 * * 0 |
@daily | Run once a day | 0 0 * * * |
@midnight | (same as @daily) | 0 0 * * * |
@hourly | Run once an hour | 0 * * * * |
在crontab中直接执行二进制命令,需要在后面添加>/dev/null 2>&1
