一直想把分区管理方式转为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: , ,

看起来很类C的python代码,走过路过的朋友不要拍我:

#!/usr/bin/env python

global chess
global count

def output():
print chess

def queen(n):
if n==8:
global count
output()
count+=1
return
for i in range(1,9):
chess[n]=i
if check(n) == True:
queen(n+1)

def check(n):
for i in range(0,n):
if chess[i] == chess[n] or abs(chess[i]-chess[n])==abs(i-n):
return False
return True

if __name__ == ‘__main__’:
count=0
chess=[]
for idx in range(0,8):
chess.append(0)
queen(0)

print “totally have %d solutions!” % count
Tags: ,

听说过西门子S65这款手机吗? 也许很多人都不知道S65。这是一款十分经典的商务手机,我于2005年8月购买了他,一直使用到现在,所有功能正常。S65早已淡出人们的视线,但我相信不少西门子手机的玩家手里都收藏着一款S65吧? Read the rest of this entry »

Tags: , , ,

具体的情况可以看看这篇稿子:联想Y430爆出闪屏门

简单点说,就是08年末到09年初出厂的部分Y430机型显示屏有严重的瑕疵,使用一定时间之后屏幕会出现闪屏或白线闪烁的现象。目前,联想给出的解决方案是免费更换显示屏。

我的Y430A-tsi也不幸中招,开机时会闪屏,大约4-5秒一次,5分钟后消失;任务栏有一条白色闪条,一直存在。我已经联系了售后,今天显示屏已经到维修站,中午就去更换。

大部分出现闪屏的显示屏型号为:LP141WX5-TLD1,由于生产这批显示屏的时间正处于金融危机爆发阶段,所以不少人认为LG是在偷工减料。

Read the rest of this entry »

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

手上有一枚朋友送的1.8英寸的20G移动硬盘,不想用了没几次就无法使用了,症状是插到电脑上后显示已连接,但盘符不出现。在设备管理器中(Vista)将它初始化,提示设备未就绪。我猜想里面的接线松了,就用一字螺丝刀直接把外壳扒了。原来还真是CE线和板子上的接触松开了(卡扣形式的接口),于是乎,把它接上,再用透明胶当绷带,把外壳粘上,又可以正常使用了。

硬盘是日立的,盒子是山寨的。


这几天正打算DIY一个2.5的移动硬盘,本来对硬盘盒没有什么特别要求,还看上了一些仿品,三星的、索尼的、希捷的,你想要什么外壳,淘宝都能淘到。不过现在我改变主意了,决定挑一个国产的品牌产品。

有时间的感觉真好,可以拼命写blog。

话说我的毕业设计是基于Android的,可是惭愧啊,不是原创应用,而是在Contacts基础之上增加新的功能,是个分支应用。

忙活了1个多月,自然收集了一些Android的资料,我不敢独享,还是放到blog上吧,有需要的朋友尽情下载。

说明一点,这些资料或文档都是在互联网上收集的,别用于非法用途……

PDF:

下载了4本书,其中3本英文,1本繁体中文。

Android A Programmers Guide:http://www.boxcn.net/shared/97j6g57vdx

Professional Android App:http://www.boxcn.net/shared/d8ktzfpjkx

Android Essential:http://www.boxcn.net/shared/4c4rz0nr4f

Android应用框架原理与程式设计:http://www.boxcn.net/shared/495hfh7mse

Tags: ,

题目取得有点怪,呵呵。

AutoCompleteTextView控件很实用,输入信息自动查询(异步的),结果以下拉列表显示。现在有这么一个需求,点击下拉列表的某个项目,弹出一个对话框,做相关的编辑操作。

重新实现一遍onItemClickListener接口就可以实现了。为什么说是重新呢?因为AutoCompleteTextView控件自己已经用了这个接口,就是点击某个项目,把相关的信息放到输入框中。

比如,下面的写法:

private class myDropDownItemClickListener
implements AdapterView.OnItemClickListener {
  public void onItemClick(AdapterView parent, View v, int position, long id) {
    showChoiceDialog(id); //自定义的方法,用于显示dialog
  }
}

你可以把相关的处理过程放在onItemClick中。

Tags: ,

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

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: ,

用了一段时间的MLdonkey了,很满意。把基本的设置转过来,作为备份。

原帖地址:http://www.imxxb.com/2008/01/mldonkey-sancho.html

其实我是想抱怨设置略显麻烦。虽然在Linux上的应用软件的设置都很自由,用户可以根据自己的喜好进行定制,但这也会带来一个问题,对于普通的用户能否设计一套缺省的配置呢?如同Windows上的应用软件一样,安装即可使用。我理解这其中蕴涵的UNIX哲学,也欣赏并且享受Linux上的软件使用方式,因为我是一个Linux爱好者。遗憾的是,我身边的同学,可以称之为Linux用户,他们时常抱怨Linux的操作和设置太琐碎,也许是因为他们习惯了Windows的傻瓜,但是我觉得对于普通用户来说,简单且省时是他们挑选应用的原则之一。

Read the rest of this entry »

Tags: ,