Linux ext4 分区丢失找回

起因

在PC机上安装MAC OS X 10.6.5(俗称黑苹果),擦除第一个主分区时,MAC OS X的磁盘工具将其它2个主分区一起删除了。

解决过程

用WINPE维护光盘启动系统后,发现扩展分区和该分区下的2个逻辑分区还在,最后的2个主分区被删除,成为一个大型的自由分区。

  • 尝试使用DiskGenius查找分区,但是DiskGenius找回的都是Windows支持的分区,无法发现linux的ext4分区。
  • 使用TestDisk查找分区,选None Partitioned,找到了紧邻逻辑分区的一个主分区。
  • 用DiskGenius添加这个分区,DiskGenius还自动列出了文件列表,表示这个分区正确。

最后一个分区一直无法找到,尝试使用DiskGenius的文件恢复也无效,找回的都是n久前windows下的文件。

最后尝试使用R-Studio恢复文件,选择这个自由分区,开始查找(参数中,只选linux文件系统,ext2、ext3……)。

让人惊讶的,R-Studio竟然可以找到最后一个丢失的主分区,并显示出在这个自由分区中的起始扇区,显示出分区卷标等信息;看到这我快哭了,感谢郭嘉和党!

在DiskGenius添加这个分区。好了,丢失的分区都找回了。

后记

1、DiskGenius对linux分区的支持一般,编辑磁盘分区很方便 ...

more ...

Virtualbox 常用命令

1、复制vdi文件

vdi文件不能直接拷贝,因为VirtualBox识别虚拟磁盘文件使用了uuid识别技术,需要用VBoxManage clonehd命令,例如:

VBoxManage clonehd '/Work/VM/WinXP.vdi' '/Work/VM/WinXP-Safe.vdi'

2、命令行启动虚拟机

VBoxManage startvm '虚拟机名称(区分大小写)',例如:
VBoxManage startvm 'Win XP'

3、启动但不显示虚拟机

VBoxHeadless -s '虚拟机名称'

4、通过VBoxManage 命令行工具的

VBoxManage controlvm |
pause|resume|reset|poweroff|savestate|
acpipowerbutton|acpisleepbutton|
keyboardputscancode [ ...]

还有很多参数,命令行查看

more ...

linux下非常好用的批量改名程序

rename 命令:

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
rename 'a' 'bc' *.gz
rename -n 's/.htm$/.html/' *.htm
rename -n 's/(.*)box/$1dd/' *.txt

详细看
http://tips.webdesign10.com/how-to-bulk-rename-files-in-linux-in-the-terminal

不过在非Debian下不支持正则,需要下载这个:
http://tips.webdesign10.com/files/rename.pl.txt

more ...

psql使用备注

执行

psql -h 主机名 -U 用户名 -d 数据库名

显示命令

\?

显示数据库

\l

连接(使用)数据库

\c 数据库名

显示数据表

\dt

显示数据表结构

\d 数据表名

取消分页显示结果

pset pager

显示SQL执行时间

timing
more ...

使用google-perftools的tcmalloc加速

1、安装libunwind(仅64位操作系统需要)

cd /usr/local/src/
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99.tar.gz
tar zxvf libunwind-0.99.tar.gz
cd libunwind-0.99
CFLAGS=-fPIC ./configure
make CFLAGS=-fPIC
make CFLAGS=-fPIC install

2、安装google-perftools

cd /usr/local/src/
wget http://google-perftools.googlecode.com/files ...
more ...

mysql启动故障

故障:
mysql启动时出现:Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist

原因:
数据目录指向错误,习惯的在目录后加了/data

more ...

PSQLException

问题:
org.postgresql.util.PSQLException: Cannot commit when autoCommit is enabled.

解决:
jdbc autoCommit = true

more ...

在python 中 简单使用 mongodb

1、安装

wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
sudo sh setuptools-0.6c11-py2.7.egg
git clone git://github.com/mongodb/mongo-python-driver.git pymongo
cd pymongo/
sudo python setup.py install

2、引入驱动

import pymongo
from pymongo import Connection

3、建立连接

connection = Connection ...
more ...

压缩 VirtualBox 的 VDI 文件

操作方法:
(以下步骤中的虚拟机操作系统为XP,不代表其他系统同样可用)
1. 运行虚拟机系统,删除不需要的文件;
2. 进行硬盘碎片整理;
3. 清除硬盘上没用到的空间(把没用到的空间写入0),推荐使用sdelete。
4. 执行命令压缩:

VBoxManage modifyhd VDI文件名 或 UUID –compact

注意VDI文件名的大小写

sdelete下载地址:
http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx

sdelete使用:

Usage: sdelete [-p passes] [-s] [-q]  

sdelete [-p passes] [-z|-c] [drive letter]  
-c  Zero free space (good for ...
more ...

linux下的内存测试

一、下载安装

下载地址: http://pyropus.ca/software/memtester/
- 安装

$ wget http://pyropus.ca/software/memtester/old-versions/memtester-4.2.1.tar.gz
$ tar zxvf memtester-4.2.1.tar.gz
$ cd memtester-4.2.1
$ make

二、简单测试

$ memtester [MEMORY] [ITERATIONS]  

MEMORY是要测试的内存的大小, 单位是MB; ITERATIONS 是测试次数. 如果没有指定测试次数, 那么测试会一直进行, 直到用户终止. - 测试例子

./memtester 15G 3
memtester ...
more ...