一直想把分区管理方式转为lvm,趁着工作比较空闲搞定了,期间遇到了不少问题,以此记录。

我之前的分区如下:

sda1 –> /
sda5 –> /swap
sda6 –> /tmp (无厘头的tmp分区)
sda7 –> /home

目标分区形式如下:

sda1 –> /boot (除非是用grub2,不然grub是没法安装在lvm的逻辑卷上的)
sda2 –> archVG — lvroot (除boot分区外,剩余空间全部做成一个pv,然后划出swap和/分区)
|– lvswap

开始动工:

1、备份现有的archlinux数据

1)、备份/分区

a.先是用archlinux的img镜像做了一个U盘启动盘,进入之后将sda1 挂载到/mnt下面,插上移动硬盘,然后开始tar:

tar pmjcf root.tar.bz2 /mnt

b.经过漫长的等待,打包结束。home分区的数据依法打包:

tar pmjcf home.tar.bz2 /mnt

c.数据已经打包并备份到移动硬盘,接下来就是重新分区了,cfdisk、fdisk之类的工具任你挑,分好两个区:sda1(100M)和sda2(剩余所有空间,其实我还留了30G,以后可以装gentoo之类的os)
d.进行lvm操作,创建pv、vg、lv。( 可以参考这里:http://wiki.archlinux.org/index.php/LVM_(简体中文) )

# modprobe dm-mod (加载lvm所需模块)
# pvcreate /dev/sda2 (创建物理卷组)
# vgcreate archVG /dev/sda2 (archVG只是卷组的名称,可随意)
# lvcreate -L XXXG archVG -n lvlroot (在archVG卷组上创建/分区的逻辑卷lvroot )
# lvcreate -C y -L 4G archVG -n lvswap (创建交换分区的逻辑卷lvswap )

注意:如果你在这期间重启了电脑,那么进入启动盘后,卷组是未激活的,需要”vgchange -a y”激活之后,才能看到之前创建的逻辑卷。
e.格式化分区。

# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/mapper/archVG-lvroot

f.恢复之前备份的数据。
将lvroot挂载到mnt,把root.tar.bz2拷贝到/mnt目录下面,然后解压:

# mount -t ext4 /dev/mapper/archVG-lvroot /mnt
# cp root.tar.bz2 /xxx /mnt
# cd /mnt; tar pmxf root.tar.bz2

将boot目录下的东东全部mv到/dev/sda1下。(这里就略了,mount到另外一个地方再mv过去即可)
g.重编译内核(为了添加lvm支持)与重装grub。(参考这里:http://wiki.archlinux.org/index.php/重装GRUB )

# cd /
# mount -t ext4   /dev/mapper/archVG-lvroot /mnt
# mount -t ext4   /dev/sda1   /mnt/boot
# mount -t proc   proc        /mnt/proc
# mount -t sysfs  sys         /mnt/sys
# mount -o bind   /dev        /mnt/dev
# chroot /mnt /bin/bash

# vim /etc/rc.conf ( 修改USELVM=”no”为USELVM=”yes” )
# vim /etc/mkinitcpio.conf ( 在HOOKS的filesystems前面加入lvm2 )
# pacman -U /var/cache/pacman/pkg/kernel26-2.6.xx.x-xxx.pkg.tar.gz

(这里图方便,安装的时候会根据mkinitcpio.conf的设置编译加入lvm2模块)

然后根据目前的分区情况编辑/etc/fstab和/boot/grub/menu.lst。(略)
重装grub。

# grub-install /dev/sda

至此,整个过程就结束了,reboot系统吧。在进入系统之前,还需要fsck一下分区,再次reboot就能顺利进入系统了。

Tags: , ,

目前的桌面环境是openbox + pcmanfm,挂载移动硬盘的时候,不管是目录还是文件,权限都是777,这是不符合原则的,我想到了修改hal的规则文件:/usr/share/hal/fdi/policy/10osvendor/20-ntfs-config-write-policy.fdi,添加下面的语句:

<append key=”volume.mount.valid_options” type=”strlist”>dmask=</append>
<append key=”volume.mount.valid_options” type=”strlist”>fmask=</append>

但是设置了之后,重启hal,挂载移动硬盘还是777的权限,上Sir一问,原来pcmanfm本身有一个mount.rules规则设定,那就改这个文件吧,终于解决了权限的问题。编辑/usr/share/pcmanfm/mount.rules,更改部分如下:

[ntfs-3g]
# mount_options=locale=;exec
mount_options=fmask=0113;dmask=0002;locale=;exec

[ntfs]
mount_options=umask=222;utf8;exec
fstype_override=ntfs-3g

还可以参考以下这篇帖子:http://bbs.archlinux.org/viewtopic.php?id=55751

今天开机自检硬盘的时候报错了,所以想到了做个备份,以防万一:

tar -cvpzf /media/xx/root-backup.tgz –exclude=/dev –exclude=/media –exclude=/mnt –exclude=/proc –exclude=/sys –exclude=/tmp –exclude=/var/tmp –exclude=/lost+found / (/和home在同一分区)

现在只给archlinux分了约40G的容量,其余都归了vista。随着答辩的结束,我也在考虑硬盘的分区问题,首先还得购买一款移动硬盘:

1. 丢弃vista,换上mac os + archlinux

2. 保留vista,同时mac os + archlinux

乘着这段时间,好好折腾一番。

Tags: ,

2月份买了台笔记本,一直还没把archlinux装上去,今天空闲,就打算用手上的U盘来安装,因为现在archlinux有img格式,直接dd到U盘就可以了。

相关的信息可以参考这里:http://wiki.archlinux.org/index.php/Install_from_USB_stick

也可以看看这里:http://www.linuxsir.com/bbs/lastpostinthread335842.html

还有一个办法,就是用UNetbootin这个工具,直接用iso镜像来做LiveUSB,可以参考这里:

http://shareitem.org/archive/using-unetbootin-to-make-liveusb-boot-disk.html

工作算是找到了,突然觉得轻松了不少,最近在做毕业设计,基于Android写个通讯录软件,希望朋友们都能找到理想的工作,当然还有考研的朋友能顺利考上!

Tags: , ,

最近在研究LiveCD的制作,打包成iso在虚拟机测试,经常出现kernel panic,比如root fs没法找到,主要的原因还是和内核的编译设置有关。一直以来我都没有深入学习过有关内核编译的知识,这的确是一个遗憾。

我用squashfs来作为livecd的压缩文件系统,下载之后首先要给内核打补丁,因为squashfs还没有进内核(lfs 6.3,kernel 2.6.22.5),这里我就犯了一个低级错误,把squashfs编译成了模块,事实上应该编译进内核。

我根据下面这个文档,把文中提到的选项都编译进了内核,LiveCD倒是正确启动了:

Read the rest of this entry »

Tags: ,

挂在lfs的iso出现这个错误,ls -l /dev/loop*显示没有任何的loop设备。

原因很简单,loop模块没有加载,临时加载:modprobe loop

开机自己加载:编辑/etc/rc.conf,加进去就可以了。

Tags: ,

为了体验android,我还是从硬盘上腾了点地方装上了ubuntu.默认grub安装在mbr,fixmbr修复之后无法进入ubuntu,grub提示Bad file or directory type。

这之前我已经重装grub至ubuntu的分区。忘记了用的是grub4dos引导,我还把ubuntu的相关信息写入了c:/menu.lst,其实只要下面几句就行:

title ubuntu
root (grub所在分区)
chainloader +1

这样就会启动指定分区的gnu grub来作引导。

不过archlinux没这个问题,我把menu.lst写在c:/menu.lst中,能正确引导。
话说体验了ubuntu 8.10之后,觉得很不习惯,什么都帮你做好了,动不动就弹出个提示,有点恐惧。好在能顺利同步android的源码了。

Tags: , ,

假期即将结束,我也马上就要回到学校了.下半年,我就是大四的人了,要做毕业生了.我放弃了考研,选择了直接工作.在接下来的时间里,我会学习日语,学习JAVA,因为我的短期择业选择是做软件外包.但我不会放弃对开源的热爱,还是会一如既往地学习自己喜欢的知识和技术.
最近一直在关注奥运,但无论是opera,还是firefox,都无法让我舒心,浏览sina 163之类的门户网站总会出现卡死现象,而且是屡屡发生.这让我很苦恼,也想不出好的解决办法.而面对日益臃肿的gnome,我也开始有些怨言了.正巧,在浏览arch wiki的时候看到了lxde,于是萌生了安装的念头.其实之前我是知道LXDE的,但那时候没有尝试.以前考虑过xfce,不过得装太多的包,我有点小小的洁癖.
什么是LXDE呢?
LXDE,即the abbrevation of Lightweight X11 Desktop Environment,通常也称之为LX (意思是LinuX)。在LX中,你会很容易发现他和别的桌面环境最大的不同,那就是他的任何一个组件都可以完全独立的应用而不依赖于其他组件. LXDE 项目致力于提供一个新的桌面环境,并且在保证易用性的前提下尽可能的减少资源的占用。易用性、速度、内存使用是作为开发者首要考虑的因素。在我看来,LXDE就是一系列轻量级桌面管理软件的集合,同时完全符合FreeDesktop.org的标准.它的主要作者之一就是PCmanfm的作者,所以这款软件是来自台湾.
arch下安装LXDE很简单,pacman -S lxde,pacman会把软件集合打包下载并安装,然后就可以使用了.更多相关的信息你可以看看这里: http://wiki.archlinux.org/index.php/LXDE_(简体中文)

这篇日志只是简单的试用报告.我退出了当前的会话,在gdm中选择lxde登录,哈哈,fusino-icon就是默认的窗口管理,舒服.lxpanel这个面板管理也工作正常,不需要要任何的修改,可不像fbpanel.你只要在面板上右键,就能打开lxpanel的控制菜单,它还带了一些现成的applet,比如cpu监视器,网络管理等,很实用.pcmanfm很多朋友都在使用,的确是一款不错的file manager,我最喜欢的是它的tab功能.它还能帮你管理你的桌面,比如修改桌面的背景.我喜欢这个功能,我在用openbox的时候,还得自己修改autostart.sh呢(谁让我是个懒惰的人呢).默认的icon主题我不喜欢,我还是习惯了自己的Tango,怎么改呢?也很简单,打开Menu–>Perferences–>Appereance,你就能更改系统的icons啦!此外,你还可以修改系统的字体,窗口的式样等等…

我只用了一会就迫不及待的来写日志了,我想今后的一段时间我都会使用LXDE,因为它简单,高效,美观,总之就是符合我的审美要求和使用需求.如果你和我一样,用惯了当前的桌面管理器,何不立即试用一下LXDE呢?

Tags:

有时候要远程登录操作服务器,突然有事要离开,但你的find还在执行,或者你还在下载东东,这个时候怎么办?

哈哈,你可以用screen来解决上述的情况。Screen是个终端的“窗口管理器”,你可以在同一个终端里打开多个shell,最重要的是screen将程序的标准输出和虚拟终端(pts)给分开了。这意味着如果你把某个任务放在screen里执行,你不需要完全守在它旁边,只要按一下Ctrl-a,d,screen 就和当前的虚拟终端设备detach,然后你可以去忙其他的事情了。即使你关闭了当前的ssh连接,也没有关系,下次ssh登录之后,执行screen -r,原先的工作环境又回来了!

Read the rest of this entry »

Tags:

gedit可以设置文本的着色方案。因为每个人的习惯不一样,该如何定制自己的color scheme呢?

很简单, color scheme的配置放在如下目录中:

/usr/share/gtksourceview-2.0/styles/

以xml保存,根据自己的需要修改该吧。

更多信息参考:

http://blogs.gnome.org/pbor/2007/08/01/gedit-style-schemes/

http://live.gnome.org/GtkSourceView/StyleSchemes

Tags: