2005-09
30

自己开设的服务器,希望晚上睡觉的时候它能自动关机减少噪音,早上起床之后再自动开机提供服务。我的主板是微星815EP Pro,Award BIOS v3.3(2001/4/20)。

首先重新启动计算机,按Del键进入BIOS设置。在BIOS下找到Integrated Peripherals中的PWRON After PWR-Fail,将其设定为On。这样停电之后再次供电时电脑就可以自动开机。

然后进入Power Management Setup,选择Resume By Alarm,将其设置为Enabled。然后将下面的Date(of Month) Alarm选项设置为0,表示每天定时开机。Date(hh:mm:ss)设置为开机时间,我设置为10:0:0。设置好之后重新启动计算机,进入操作系统,然后再关机。注意主板说明书上只说明了“修改后需要重新启动计算机”,要注意的是重新启动之后必须要进入操作系统,再关机,才会按照指定的时间开机。

然后设置自动关机。比较简单,在 /etc/cron.d 下面添加一个 shutdown 文件,内容如下:

30 2 * * * root /sbin/shutdown -h now

设置每天2:30定时关机。



2005-05
18

Linux 对 PCMCIA 设备提供了很好的支持。本文简单介绍了Linux下PCMCIA设备的安装方法。
阅读全文 »


2005-05
16

是否遇到过这样的问题,划分了 10G 的一个分区,挂接到 /home 下,可是随着时间的流逝,10G 的空间开始不够用了,需要把它扩充。假设要扩充到 12G,那么唯一的方法就是建立一个 12G 的新分区,然后将原来的 10G 分区中的数据全部移动到新分区中,再修改挂接配置。这样不仅麻烦而且浪费时间。

Linux 2.4 开始支持 LVM(Logical Volume Manager,逻辑卷管理器),通过 LVM,可以动态地改变“分区”(准确地说应当称之为卷)的大小,而不必担心数据移动的问题。LVM 的原理是,首先在硬盘上创建 PV(Physical Volume: 物理卷)。PV 可以创建在一个分区上,也可以创建在整个硬盘上,它由许多的 PE(Physical Extent)组成,每个 PE 的默认值为 4MB。之后将数个 PV 合在一起组成一个 VG(Volume Group: 卷组)。最后在 VG 中创建 LV(Logical Volume: 逻辑卷),它也由许多的 LE(Logical Extent)组成,LE 的大小与 PE 相同,并与 PE 一一对应。LV 就可以像普通的分区一样挂接在任何地方了。

阅读全文 »

2005-05
14

Linux 内核启动之后,启动的第一个进程就是 init 进程。该进程从 /etc/inittab 文件中读取配置,对系统进行一系列的初始化工作。下面我们来分析一下 /etc/inittab 文件的结构。

阅读全文 »

2005-05
14
  1. 系统启动时,首先由固化在硬件中的 BIOS 对硬件进行初始化,然后读取硬盘的 MBR 上的引导程序。
    BIOS: Basic Input/Ouput System,基本输入输出系统,固化在系统中的代码,用于完成最底层的硬件操作。
    MBR: Master Boot Record,主引导记录,位于第一块硬盘的第一个扇区,大小为512字节。其中前 446 字节为引导程序,之后的 64 字节为分区表,最后的两字节为结束标记。
  2. MBR 中的 stage1 执行,并跳转到硬盘上保存的引导程序的剩余部分(即stage2)。
    stage1stage2: MBR 中保存的为 Linux 引导程序( Linux Boot Loader) 的第一部分(即stage1)。由于一般的引导程序都很大,无法放到 MBR 的 446 字节中,因此只将一部分放到 MBR 中,这一部分称为 stage1,用于将引导程序的剩余部分(即stage2)读入并执行。
  3. stage2 执行,并读取 Linux 内核。
  4. 内核执行,对各种硬件进行检测和初始化。
  5. 内核启动 init 进程。
    init进程: 为 Linux 系统中启动的第一个进程,PID 为 1,其它所有的进程都为该进程的子进程。
  6. init 进程按照 /etc/inittab 的指示进行系统初始化工作。一般包括启动各种服务,并启动数个虚拟终端供用户登录。


2005-03
31

刚刚装好Linux,启动X-Window,经常会发现屏幕并不是显示在显示器的正中央,总是稍稍偏一点。虽然我们可以通过调节显示器上的调节按钮来调整屏幕的位置,但是 X 提供了一个名为xvidtune的程序来专门用于调整屏幕位置。下面以 Fedora Core 3 为例讲解如何使用该程序来调整显示位置。

阅读全文 »

2005-03
30

如果两台计算机之间突然需要传送一个文件,而一时又没有什么好用的通讯工具,也来不及开服务器的时候,那么可以使用nc来传送文件。方法如下:

接收者:  $ nc -l -p 12345 > save_filename    ; 12345为1024-65535的任意端口号
发送者: $ nc <接收者ip> 12345 < send_file


2005-03
21

设置如下环境变量:

export http_proxy=proxy_ip:proxy_port

如果是ftp代理的话则为

export ftp_proxy=proxy_ip:proxy_port

例如

export http_proxy=10.1.1.2:8080

注意代理IP的前面不要加http://等



2004-12
02

由于最近很多人询问关于如何在内网架设FTP的问题,因此在这里把经验总结一下供大家分享。

本文将分为四个部分。第一部分阐述“什么是内网架设FTP”的问题。第二部分分析FTP协议的原理。第三部分阐述在内网中架设FTP服务器时会遇到的问题以及解决方法,使外网的用户能够访问位于内网的FTP服务器。第四部分为总结。建议读者能够将这五部分全部读完。如果只想要一个快速安装指南,那么请阅读第一部分和第四部分。

本文所使用的FTP服务器为proftpd。

阅读全文 »

2004-11
27

注:这里的fdisk不是DOS中的fdisk,而是linux的fdisk。

我的硬盘上已经划分了好多分区,每个分区上都装了不同发行版的Linux。今天想再从剩下的空间中划出分区来安装Fedora Core 3,却失败了。察看了一下分区表的结构:

Disk /dev/hda: 80.0 GB, 80025280000 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1      1275  10241406    7  HPFS/NTFS
/dev/hda2          1276      6374  40957717+   7  HPFS/NTFS
/dev/hda3          6375      7139   6144862+  83  Linux
/dev/hda4          7140      8663  12241530    f  Win95 Ext'd (LBA)
/dev/hda5          7140      7204    522081   82  Linux swap
/dev/hda6          7205      7690   3903763+  83  Linux
/dev/hda7          7691      8177   3911796   83  Linux
/dev/hda8          8178      8663   3903763+  83  Linux

从硬盘的分区结构来看,hda5-8已经占用了扩展分区hda4的全部空间,而硬盘上的剩余空间位于hda4之后。所以要想使用硬盘上最后的剩余空间,就必须要在hda的分区表上添加一个分区,而hda的分区表已经全部被占用(hda1-4),所以当然就不能添加更多分区了。

解决办法就只有扩大hda4的大小,让它能占用整个硬盘上的剩余空间,然后将新的分区划分到hda4中。

看了一下fdisk的帮助,好像没有能够直接修改分区大小的命令,没办法只好把分区删除再重建了。为了以防万一,首先执行 # dd if=/dev/hda of=/root/mbr bs=1 count=512 备份了一下MBR,然后将备份出的/root/mbr文件放到一个安全的地方。然后记下各个分区的起始地址和结束地址以备以后恢复分区时使用。用d命令删除hda4,这样位于hda4上的hda5-8就全部被删除了。然后用 n 命令新建分区,选择 e 表示建立扩展分区,分区的起始和结束地址就使用默认值也就是让它充满剩余的所有空间。然后用 t 命令将hda4的格式修改为W95 Ext'd (LBA),编号为f。然后根据以前记下的分区起始和结束地址信息,依次建立hda5-8。最后用p命令查看分区表结构如下:

Disk /dev/hda: 80.0 GB, 80025280000 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1      1275  10241406    7  HPFS/NTFS
/dev/hda2          1276      6374  40957717+   7  HPFS/NTFS
/dev/hda3          6375      7139   6144862+  83  Linux
/dev/hda4          7140      9729  20804175    f  Win95 Ext'd (LBA)
/dev/hda5          7140      7204    522081   82  Linux swap
/dev/hda6          7205      7690   3903763+  83  Linux
/dev/hda7          7691      8177   3911796   83  Linux
/dev/hda8          8178      8663   3903763+  83  Linux

可以看出修改后的分区表除了hda4之外,其他的所有分区的结构都没有改变。这样位于hda9之后的8664-9729就可以拿出来划分新的分区了。

然后就是用 w 命令保存。为了保险起见,使用 fsck.ext3 命令检查了一下 hda6-8,保证没有出现错误。