10
10
2011
11

神奇的UNIX文件,用cat把ISO写到U盘

cuihao同学在学校机房发回报道

有一句话叫做"In UNIX Everything is a File"。在UNIX(包括Linux)中,文件可以用来代表各种东西,包括硬件设备、磁盘分区、网络链接、内核、终端…… 通过这种设计,你可以统一地使用简单的cat、echo命令控制硬件、与内核交互、进行网络通讯等等,我们不必为了完成这些操作专门编程调用系统API。简单的命令拥有了新的生命力,SHELL也因此变得强大。

 

来点简单的例子:

/dev/ttyX 是代表tty(ctrl+alt+Fn看到的那个命令行界面)的文件。尝试如下命令:

su -c "echo 'hi, tty9' > /dev/tty9"

就是用echo把一串字符输出到 /dev/tty9 文件中(使用su命令是因为普通用户没有使用tty设备文件得权限)。然后用Ctrl+Alt+F9切换到 tty9,会发现那串字符果然显示在tty上了。

再试试cat命令:

su -c "cat /dev/tty9"

键入后,cat处于等待输入的状态。进入tty9,输入一些内容,再切回原来的终端,键入的内容都被cat捕获了。键入Ctrl+D(文件结束符),cat就会终止。

 

然后是主题,用cat写ISO:

把ISO文件test.iso写入U盘设备(比如 /dev/sdc,会破坏数据,小心):

cat test.iso > /dev/sdc

自己加su用root执行。命令执行完毕后,你的U盘的分区表应该已经被破坏了 ^^ ISO已经写入到U盘中。可以使用这个技巧制作系统安装盘。很神奇的“设备文件”吧。

另外,使用后重新格式化U盘时,可能需要重建一下分区表。

Category: 计算机 | Tags: Linux ISO 文件系统 UNIX
9
10
2011
7

e4rat:大幅提升Linux开机速度

警告:此软件仅限原生ext4文件系统使用。其他文件系统以及从低版本升级的ext4文件系统用户不要使用,否则将导致灾难性后果。 本着负责的态度,先Warning。 

e4rat是个好东西。其原理大致是(我猜的):通过磁盘整理有序化开机要加载的文件,并在系统启动阶段把数据预读到内存,充分使用内存和IO资源。

AUR上大家的溢美之词:

snack 发表于 Mon, 20 Jun 2011 23:03:28 +0000

Just one word: amazing! Can't believe such an improvement can be obtained so simply. Definitely one of the most notable utilities I've ever tried.

bwat47 发表于 Sat, 11 Jun 2011 00:55:03 +0000

Very impressive stuff! I have a laptop with a 5400rpm drive. This made like halved my boot time (gdm starts way faster, login is faster) all my apps like chrome/banshee/empathy start as fast as if they were cached in memory already :)

drexya 发表于 Sat, 04 Jun 2011 02:52:06 +0000

Wow, impressive results Oo.

可以看看官方给的效果图Amazing诶!

使用前

使用后

 

本文针对Arch系统,介绍一下使用方法。

1. 系统要求:

根文件系统是原生ext4,即一开始就格式化成ext4了,不是从ext2、ext3升级的。

内核支持audit。repo中的内核都支持,手动编译内核的需要注意一下。

2. 安装:

yaourt -S e4rat

或者自己从AUR下载脚本编译。

3. 收集信息:

grub中Linux启动项最后加上参数:

init=/sbin/e4rat-collect

启动后e4rat会记录120秒内系统打开的文件。可以在 /etc/e4rat.conf 修改等待时间(timeout)。

PS:据我观察,收集信息时系统启动会变得格外的慢,可能要一分钟以上。

4. 整理磁盘:

收集信息后,会生成 /var/lib/e4rat/startup.log 文件,里面记录的就是启动时打开的所有文件。然后要整理磁盘,该操作需要在单用户模式下执行:

sudo init 1

然后:

e4rat-realloc  /var/lib/e4rat/startup.log

5. 大功告成:

修改grub菜单文件,Linux启动项参数加入:

init=/sbin/e4rat-preload

重启后e4rat就开始工作了。

6. 其他:

a. 不要让e4rat预读太多东西,启动到桌面就足够了。如果预读太多东西(比如浏览器、文本编辑软件),反而会拖慢开机速度。

b. 以上都是针对Arch默认的init程序。如果你使用其他init机制,比如systemd,需要修改 /etc/e4rat.conf ,设置init参数:

init /bin/systemd

c. 该软件对SSD固态硬盘没什么作用。

| Theme: Aeros 2.0 by TheBuckmaker.com