2007年8月28日

悠言悠闲:Compiz Fusion on my Gentoo box


Youtube链接:http://www.youtube.com/watch?v=gL4mwlNQS7s

升级CPU!升级内存!升级显卡!Vista立功了,Aero立功了!不给旧电脑任何的机会。
伟大的Windoze Vista操作系统!它继承了历版Windoze和PC厂商们勾结的传统。Intel、AMD、nVidia在这一刻灵魂附体,
Vista一个操作系统代表了微软和PC厂商们未来所有的利益,在这一刻它不是一个操作系统在战斗,它不是一个操作系统!
——节选自《蚊@喂死它的阴谋》


话说上面这段惨不忍睹的短片,我花了一天时间折腾出来的。说是“折腾”一点都不为过,先是弄我的Wacom Graphire4,明明照着wiki上面做的,重启之后就是不能用udev了,半天起不来,到现在还是用静态的。这也就先将就了,反正过些日子打算把linuxwacom驱动升到0.7.8,据说那样就会有压感了。

用xvidcap作屏幕录像,但是emerge了1.16基本就废掉了,一点就死,论坛上说管使的1.14却有一大堆的gnome的包依赖不敢装。后来用的是RecordMyDesktop,挺傻瓜的,但就是frame多了要崩溃,参数设错了要崩溃。录了好几十遍好不容易找到窍门了,但没想到最大的难关还在后面。

Cinelerra,这已经不是我折腾它,是它在折腾我了,囧。。。想起来就痛苦,不说了。

最后出片到土豆上一看,发现后面OpenOffice里面的一段介绍文字基本看不清。失算了,亏我还留了很长一段时间的静格画面。下次注意吧,这次将就将就贴在这里当补充说明了


Compiz Fusion是一个由OpenGL驱动的运行于X Window System上的合成视窗管理程序,由Compiz和Beryl两个项目合并而成。
Compiz Fusion的3D能力使其可以在窗口管理过程中实现多种视觉效果,比如类似苹果电脑的Mac OS X操作系统中所提供的许多桌面特效,例如 Exposé;或者是类似微软新一代视窗系统Windows Vista中的使用Alt-Tab时切换应用程序的特效等等。最新的Compiz Fusion测试版中最引人注目的效果就是手写火焰了,这也是我最喜欢的效果之一。^ ^

2007年8月24日

有备无患:Gentoo LVM2 安装笔记(下)

3. 安装LVM2


安装全新的 Gentoo Linux 系统之前,首先要准备一张支持 LVM2 的启动光盘。我手头的是Gentoo LiveCD 2007.0,启动时记得加载 LVM2 模块:gentoo dolvm2

然后,照着葫芦画瓢直到Gentoo 安装手册《第四章 - 准备磁碟》。按照Gentoo LVM2 安装笔记(上)中的既定计划分区,我用的是 fdisk,你也可以用 fdisk 或者其它分区工具。使用 fdisk的具体步骤请参照安装手册。结果:


# fdisk /dev/sda

Command (m for help): p

Disk /dev/sda: 320.0 GB, 320071851520 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot  Start   End     Blocks     Id   System
/dev/sda1    1       9       72261      83   Linux
/dev/sda2    10      72      506047+    83   Linux
/dev/sda3    73      197     1004062+   83   Linux
/dev/sda4    198     38913   310986270  5    Extended
/dev/sda5    198     16246   128913561  83   Linux
/dev/sda6    16247   18800   20514973+  83   Linux
/dev/sda7    18801   21354   20514973+  83   Linux
/dev/sda8    21355   23908   20514973+  83   Linux
/dev/sda9    23909   26462   20514973+  83   Linux
/dev/sda10   26463   29016   20514973+  83   Linux
/dev/sda11   29017   31570   20514973+  83   Linux
/dev/sda12   31571   34124   20514973+  83   Linux
/dev/sda13   34125   36678   20514973+  83   Linux
/dev/sda14   36679   38913   17952606   83   Linux

完成分区后,先初始化 Swap 置换分区。


# mkswap /dev/hda2
# swapon /dev/hda2

接着加载 LVM2 dm-mod 模组,并激活 LVM。


# modprobe dm-mod

(别让 LVM 扫描硬盘以外的设备浪费时间)
# vi /etc/lvm/lvm.conf
(找到这一行)
    filter = [ "a/.*/" ]
(把它替换为下面这一行)
    filter = [ "a|/dev/sda|", "r/.*/" ]
(ZZ,存盘并退出 vi)

# vgscan
  Reading all physical volumes.  This may take a while...
  No volume groups found

再注意一次哟,/dev/sda1、/dev/sda2、/dev/sda3 分别对应的 /boot、Swap 置换分区和主分区不要放入 LVM2 volume group。只要用 /dev/sda5 创建一个 LVM2 volume group - lvg。


# pvcreate /dev/sda5
  No physical volume label read from /dev/sda5
  Physical volume "/dev/sda5" successfully created

(建立個叫做 lvg 的卷群组)
# vgcreate lvg /dev/sda5
  /etc/lvm/backup: fsync failed: Invalid argument (无视这警告)
  Volume group "lvg" successfully created

如果想还扩充 lvg,可以用下一节将要介绍的 vgextend。但是,增加一个分区的大小通常比缩小它来的容易,所以在分配空间的时候不妨先做一个十足十的“吝啬鬼”。接下来我们要关心的是为这些个逻辑卷分配空间。



# lvcreate -L10G -nusr lvg
  Logical volume "usr" created
# lvcreate -L100G -nhome lvg
  Logical volume "home" created
# lvcreate -L5G -nopt lvg
  Logical volume "opt" created
# lvcreate -L10G -nvar lvg
  Logical volume "var" created
# lvcreate -L3G -ntmp lvg
  Logical volume "tmp" created

BTW,像 Gentoo LVM2 安装文档里介绍的一样,把 160G 的硬盘等分成8块,也是个非常不错的主意。或许还会用到 lvextend 命令,它的具体用法也可以参考下一节的例子。

然后格式化所有的分区。除了/boot 用 ext2 以外,所有分区都强烈推荐使用 reiserfs 文件格式。因为 reiserfs 支持在线修改分区容量,这样就省去先 umount 后 resize 的麻烦事了。


#mke2fs /dev/sda1
#mkreiserfs /dev/sda3
#mkreiserfs /dev/lvg/usr
#mkreiserfs /dev/lvg/home
#mkreiserfs /dev/lvg/opt
#mkreiserfs /dev/lvg/var
#mkreiserfs /dev/lvg/tmp

格式化完所有分区之后,按着安装手册里说的,先挂载主分区,后再挂载其他的分区。


# mount /dev/sda3 /mnt/gentoo/
# cd /mnt/gentoo/
# mkdir boot
# mkdir usr
# mkdir home
# mkdir var
# mkdir opt
# mkdir tmp
# mount /dev/sda1 boot/
# mount /dev/lvg/usr usr/
# mount /dev/lvg/home home/
# mount /dev/lvg/var var/
# mount /dev/lvg/opt opt/
# mount /dev/lvg/tmp tmp/

接下来回到 Gentoo 安装手册的《第五章 - Gentoo 安装档案》继续照葫芦画瓢——安装 Gentoo Linux。但记得把 LVM2 支持加入到 Linux 内核中。我用 genkernel,需要运行:


# genkernel --lvm2 --menuconfig all

编译好内核与模组后,还要在启动时加载 dm-mod 模块。


#echo "dm-mod" >> /etc/modules.autoload.d/kernel-2.6

注意:把 /usr/src/linux 链接到使用中的内核源码,因为 lvm2 ebuild 所使用 device-mapper ebuild 会用到 /usr/src/linux/include/linux 下的源码。接下来 emerge lvm2


# emerge -av lvm2

然后就像在 LiveCD 中一样,修改 /etc/lvm/lvm.conf 文件。


# vi /etc/lvm/lvm.conf
(找到这一行)
    filter = [ "a/.*/" ]
(把它替换为下面这一行)
    filter = [ "a|/dev/sda|", "r/.*/" ]
(ZZ,存盘并退出 vi)

最后设置 /etc/fstab。这是我的现成品:


# cat /etc/fstab

/dev/sda1      /boot   ext2       noauto,noatime  1 2
/dev/sda2      none    swap       sw              0 0
/dev/sda3      /       reiserfs   noatime,notail  0 1

# Logical volumes
/dev/lvg/usr   /usr    reiserfs   noatime,notail  0 2
/dev/lvg/home  /home   reiserfs   noatime,notail  0 2
/dev/lvg/opt   /opt    reiserfs   noatime,notail  0 2
/dev/lvg/var   /var    reiserfs   noatime,notail  0 2
/dev/lvg/tmp   /tmp    reiserfs   noatime,notail  0 2

注意:如果在 Gentoo 安装过程中被迫重启了,又希望继续使用刚才的逻辑卷群组的话,可以使用 vgscan 命令查找之前设置的节点


# vgscan --mknodes

最后安装完成后,用 vgdisplay 和 pvdisplay 查看 LVM2 的信息,就能知道用了哪些物理卷、卷群组还剩下多少预留空间等。


# vgdisplay -v lvg

    Using volume group(s) on command line
    Finding volume group "lvg"
  --- Volume group ---
  VG Name                lvg
  System ID            
  Format                 lvm2
  Metadata Areas         3
  Metadata Sequence No   9
  VG Access              read/write
  VG Status              resizable
  MAX LV                 0
  Cur LV                 5 
  Open LV                5
  Max PV                 0
  Cur PV                 3
  Act PV                 3
  VG Size                159.62 GB
  PE Size                4.00 MB
  Total PE               40862
  Alloc PE / Size        40448 / 158.00 GB
  Free  PE / Size        414 / 1.62 GB
  VG UUID                iHQRao-cmp4-gZ5l-kbA3-G1Yr-Fkk5-0Lt4my
  
  --- Logical volume ---
  LV Name                /dev/lvg/usr
  VG Name                lvg
  LV UUID                CMTe0N-42s0-4U5I-5quW-Pnk2-Uj4U-SPlo0y
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                10.00 GB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:0
  
  --- Logical volume ---
  LV Name                /dev/lvg/home
  VG Name                lvg
  LV UUID                tfR1uD-1K0u-X5v6-Y5bs-FX2E-4y6o-A39St0
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                130.00 GB
  Current LE             33280
  Segments               4
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:1
  
  --- Logical volume ---
  LV Name                /dev/lvg/opt
  VG Name                lvg
  LV UUID                pAiUjY-2xe5-tpPr-pQvA-WF7z-OYt4-TEO0IG
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                5.00 GB
  Current LE             1280
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:2
  
  --- Logical volume ---
  LV Name                /dev/lvg/var
  VG Name                lvg
  LV UUID                MCrrFa-owTk-OAVT-Gbh1-SzXA-Dt7m-3GLGTf
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                10.00 GB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:3
  
  --- Logical volume ---
  LV Name                /dev/lvg/tmp
  VG Name                lvg
  LV UUID                TOk0di-NcvR-2Dm2-Tthy-e33D-9pwI-f9O6Ia
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                3.00 GB
  Current LE             768
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:4
  
  --- Physical volumes ---
  PV Name               /dev/sda5    
  PV UUID               84Dfoi-zu8P-9j1I-4QO1-ICaL-QvYP-W8gWqZ
  PV Status             allocatable
  Total PE / Free PE    31472 / 0
  
  PV Name               /dev/sda6    
  PV UUID               ZwR0w3-0zg6-DNBj-XdDm-um9I-CG2l-5u1702
  PV Status             allocatable
  Total PE / Free PE    5008 / 414
  
  PV Name               /dev/sda14    
  PV UUID               uxPnzS-ziKj-ujXf-RUNY-QvY9-6rr6-DQnzt5
  PV Status             allocatable
  Total PE / Free PE    4382 / 0

有备无患:Gentoo LVM2 安装笔记(上)

1. 概述


Logical Volume Manager,是一个 Linux 内核的逻辑卷管理器。1998年,Heinz Mauelshagen 基于 HP-UX 的设计,为 Linux 内核开发了 LVM。现在,LVM2 已经是 Linux 中两个重要的卷管理工具之一,另一个是 EVMS。

这片文章详细记录了我在系统中安装 LVM2 的过程,希望能为大家提供一点参考。但要注意哟,不要把它当作你的 HOWTO。你仍然需要在安装前,好好读一遍 Gentoo 安装手册Gentoo LVM2 安装文档 或者其他 LVM2 HOWTO。欢迎 FIXME :-)

2. 准备工作


分区的大小一旦确定,通常就不再可以改变。

每次安装 Windoze,我总是“如临大敌”:Windoze 要吃掉C盘几个G?几个G的软件要装在D盘上?要下载几个G的电影到E盘?……可是,再精明的盘算到最后也可能落空,一不留神就把某个分区塞满的事情时常发生,毕竟我不是先知不会放狗(啊,也许是狼-__-),我也无从得知我“究竟”要在这些个分区上存储多少数据。好在 Windoze 并不介意我把“大珠小珠”散落在不同的“玉盘”上——把D盘装不下的游戏搬到E盘,或者把E盘看不完的电影扔到C盘——来“平衡负载”,直到那个臭名昭著的蓝屏通知我,Windoze 崩溃了——一般不会让我等太久。

可是,Linux 不喜欢这样的“胡作非为”。即使我把10G的 /home 用完了,也不能在 /usr 或者 /tmp 另辟战场,因为我没有将数据写入这些目录的权限。按照传统的分区方法,我需要再增加一个大于10G硬盘,创建一个新的 /home,并将现有的文件复制过去。如果用 LVM 管理这些分区,我既可以把新硬盘直接添加到 /home 逻辑卷中,也可以调整 /usr 或者 /tmp 的大小,把节约出来的空间分配给 /home,然后继续之前的工作。另外,LVM2 可以创建一个可读写的自身快照,类似于 RAID 0。

这就是 LVM 的好处,赋予我的工作以弹性。不再猜测未来究竟会使用多少空间,我只需知道当下要用多少空间,并为未来留下足以变通的可能性就可以了。

我手头上是一块希捷的酷鱼7200.10 SATA 320G 硬盘。我不打算安装 Windoze,但是也许会试试 Ubuntu 或者 CentOS,所以我不会把所有的硬盘空间都扔给 Gentoo。如果你的想法恰好和我一样,我想你会享受这个方案的。不过大多数情况下,你要根据自己的需求来拟定自己的计划。接下来简单说明分区计划:


  • /dev/sda1 --> /boot 启动分区
  • /dev/sda2 --> Swap 置换分区
  • /dev/sda3 --> / 主分区
  • /dev/sda4 --> 扩展分区
  • /dev/sda5 --> 安装时即加入 LVM2 卷群组
  • /dev/sda6 ~ /dev/sda14 --> 备用分区

/boot 分区不需要很大,64M就足够折腾一堆内核了。

Swap 置换分区视内存而定,512M。

Gentoo LVM2 安装文档建议的主目录空间是150M,包括/etc、/lib、/mnt、/proc、/bin /sbin、/dev 和 /root 等目录,不包括 /usr、/home、/opt、/var 和 /tmp。想到万一会用 root 帐号下载东西,把主分区设置为1G(不是 root 敢死队哟,万一啦)。特别要注意,主目录最好不要放在 LVM2 volume group 中。这样即使 LVM2 或者其他程序发生灾难的时候,至少还可以用 root 帐号登录到系统。

剩下有300G+空间。我可不想只是弄成一个大分区,全部扔给 LVM2 管理,因为这办法没什么“弹性”。我先确定将要使用的空间 /dev/sda5 130G,当中有 /usr 10G、/opt 5G、/tmp 3G、/var 10G 以及 /home 100G。剩余的空间以20G为单位划分成9个分区。这有点像 CS 里换弹匣的感觉——当 AK 子弹用光的时候,你就要按下'Reload'键来重装一个弹匣,而 /dev/sda6 ~ /dev/sda14 9个分区就是我的备用弹匣。我可以在需要的时候把它们归入 LVM2,也可以用来安装 Ubuntu 或者 CentOS,这样就为未来预留了可能性。

最后是我现在的硬盘空间情况,权当参考。


# df -hH

Filesystem              Size   Used  Avail Use% Mounted on
/dev/sda1                72M   8.2M    60M  13% /boot
/dev/sda3               1.1G   266M   763M  26% /
udev                     11M   263k    11M   3% /dev
/dev/mapper/lvg-usr      11G   3.5G   7.3G  33% /usr
/dev/mapper/lvg-home    140G   128G    13G  92% /home
/dev/mapper/lvg-opt     5.4G   355M   5.1G   7% /opt
/dev/mapper/lvg-var      11G   1.6G   9.2G  15% /var
/dev/mapper/lvg-tmp     3.3G   163M   3.1G   6% /tmp
none                    1.1G      0   1.1G   0% /dev/shm

终于要开始安装 LVM2了。请继续:《Gentoo LVM2 安装笔记(下)》

2007年8月11日

悠言悠闲:验证专用贴

feedsky的验证码:869bc65b

豆瓣的验证码:doubanclaimdf03f81cb0cb3773

订阅我的博客

搜索我的博客

正在加载...

我的豆瓣广播

分享阅读

豆瓣秀

休斯敦火箭

我的文章归档

版权申明