Chinaunix首页 | 论坛 | 博客
  • 博客访问: 438469
  • 博文数量: 72
  • 博客积分: 2120
  • 博客等级: 大尉
  • 技术积分: 789
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-02 11:21
个人简介

简单

文章分类

全部博文(72)

文章存档

2019年(4)

2018年(2)

2017年(2)

2014年(1)

2011年(6)

2010年(7)

2009年(50)

我的朋友

分类: LINUX

2010-01-09 13:44:38

第一部分 查看硬盘上的状态

硬盘上有些什么、文件们都有多大,在有些时候我们是需要关心的,所以这里简单介绍两个命令:df、du。

df的使用方法:

DF(1)                                                                                                              DF(1)

NAME
       df - 报告文件系统磁盘空间的使用情况

总览
       df [OPTION]... [FILE]...

       POSIX 选项: [-kP]

       GNU 选项 (最短方式): [-ahHiklmPv] [-t fstype] [-x fstype] [--block-size=size] [--print-type] [--no-sync] [--sync]
       [--help] [--version] [--]

描述
       此手册页文档是df的GNU版本.  df命令列出指定的每一个文件名所在的文件系统上可用磁盘空间的数量。如果没有指定文件名,则
       显示当前所有使用中的文件系统.缺省设置时, 磁盘空间以1K为一块显示,如果环境变量POSIXLY_CORRECT已设置,则采用512字节为
       一块显示.  如果参数是一个包含已使用文件系统的磁盘设备名, df命令显示出的是该文件系统的可用空间,而非包含设备结点 的
       文 件系统(只能是根文件系统).此版本的df不能显示未使用文件系统的可用空间,这是由于大多数系统在响应这样的请求时必须很
       清楚该文件系统的结构.

GNU 参数说明
       -a, --all
              列出包括BLOCK为0的文件系统

       --block-size=SIZE use SIZE-byte blocks
              指定块的大小

       -h,--huma-readable"
              用常见的格式显示出大小(例如:1K 234M 2G)

       -H,--si"
              同上,但是这里的1k等于1000字节而不是1024字节

       -i, --inodes
              用信息索引点代替块表示使用状况

       -k, --kilobytes
              指定块大小等于1024字节来显示使用状况

       -l, --local
              只显示本地文件系统使用状况

       -m, --megabytes
              以指定块大小等于1048576字节(1M)来显示使用状况

       --no-sync
              在取得使用信息前禁止调用同步 (default)

       -P, --portability
              使用POSIX格式输出

       --sync 在取得使用信息前调用同步

       -t, --type=TYPE
              只显示指定类型(TYPE)的文件系统

       -T, --print-type
              输出每个文件系统的类型

       -x, --exclude-type=TYPE
              只显示指定类型(TYPE)之外的文件系统.

       -v (忽略)

       --     输出该命令的帮助信息并退出

       --version
              输出版本信息并退出

du的使用方法:

DU(1)                                                                                                              DU(1)

NAME
       du - 报告磁盘空间使用情况

总览
       du [options] [file...]

       POSIX 选项: [-askx]

GNU 选项 (最短格式):
       [-abcDhHklLmsSxX] [--block-size=size] [--exclude=pattern] [--max-depth=n] [--help] [--version] [--]

描述
       du 报告指定的文件已使用的磁盘空间的总量,包括在层次结构中以这些以指定文件为根的目录在内。这里的已使用的磁盘空间意
       思为指定的文件下的整个文件层次结构所使用的空间。

       在没给定参数的情况下,du 报告当前目录所使用的磁盘空间。

POSIX 细节
       输出结果在缺省时以512字节为计数单位,若给以 -k 选项,则以 1024字节为计数单位。

GNU 细节
       (在没有用选项指定计数单位的情况下)输出结果以1024字节为计数单位,但不包括由于设置了环境 变 量POSIXLY_CORRECT 而 跟
       从POSIX 标准的情况。

POSIX 选项
       -a     显示对涉及到的所有文件的统计,而不只是包含子目录。

       -k     用1024字节作为计数单位,替代缺省时512字节的计数单位。

       -x     只输出指定参数的实际使用空间,而不包括其下的子目录。

       -s     只统计指定参数的在同一设备上所使用的空间。

GNU 选项
       -a, --all
              显示对所有文件的统计,而不只是包含子目录。

       -b, --bytes
              输出以字节为单位的大小,替代缺省时1024字节的计数单位。

       --block-size=size
              输出以块为单位的大小,块的大小为 size 字节。( file- utils-4.0 的新选项)

       -c, --total
              在处理完所有参数后给出所有这些参数的总计。这个选项被用给出指定的一组文件或目录使用的空间的总和。

       -D, --dereference-args
              引 用 命 令 行 参 数 的 符号连接。但不影响其他的符号连接。这对找出象 /usr/tmp 这样的目录的磁盘使用量有用,
              /usr/tmp 等通常是符号连接。译住:例如在 /var/tmp 下建立一个目录test, 而/usr/tmp 是指向 /var/tmp 的符号连接
              。du /usr/tmp 返回一项 /usr/tmp , 而 du - D /usr/tmp 返回两项 /usr/tmp,/usr/tmp/test。

       --exclude=pattern
              在 递 归 时 , 忽 略 与指定模式相匹配的文件或子目录。模式可以是任何 Bourne shell 的文件 glob 模式。( file-
              utils-4.0 的新选项)

       -h, --human-readable
              为每个数附加一个表示大小单位的字母,象用M表示二进制的兆字节。

       -H, --si
              与 -h 参数起同样的作用,只是使用法定的 SI 单位( 用 1000的幂而不是 1024 的幂,这样 M 代表的就是1000000 而不
              是 1048576)。(fileutils-4.0 的新选项)

       -k, --kilobytes
              输出以1024字节为计数单位的大小。

       -l, --count-links
              统计所有文件的大小,包括已经被统计过的(作为一个硬连接)。

       -L, --dereference
              引用符号连接(不是显示连接点本身而是连接指向的文件或目录所使用的磁盘空间)。

       -m, --megabytes
              输出以兆字节的块为计数单位的大小(就是 1,048,576 字节)。

       --max-depth=n
              只输出命令行参数的小于等于第 n 层的目录的总计。 --max-depth=0的作用同于-s选项。(fileutils-4.0的新选项)

       -s, --summarize
              对每个参数只显示总和。

       -S, --separate-dirs
              单独报告每一个目录的大小,不包括子目录的大小。

       -x, --one-file-system
              忽略与被处理的参数不在同一个文件系统的目录。

       -X file, --exclude-from=file
              除 了从指定的文件中得到模式之外与 --exclude 一样。模式以行的形式列出。如果指定的文件是’-’,那么从标准输入中
              读出模式。(fileutils-4.0 的新选项) GNU 标准选项

       --help 在标准输出上输出帮助信息后正常退出。

       --version
              在标准输出上输出版本信息后正常退出。

       --     终结选项列表

第二部分 分区

在一个有win的电脑上,分区无疑是一件很简单的事。使用分区魔术师,对硬盘可以进行分区、合并、调整大小,所以大多数和我一样电脑上先有win的朋友在 分区方面一定不用愁,整理下数据,空出几个分区,然后在ubuntu安装的时候就可以利用安装程序分好区,以后就没有什么可担忧的了,但是某些朋友因为某 些需要,必须利用linux操作系统进行分区,那么以下的内容也许能有点价值。

首先谈谈基础知识,一个硬盘可以划分4个区,3个主要分区,一个扩展分区,而扩展分区里可以划分n个逻辑分区,扩展分区本身不能储存任何东西,也不能格式化成某种文件系统,只能用于区分逻辑分区。

我们主要应用的命令有三个:fdisk、cfdisk、gparted。其中前两个命令在breezy中已经安装好了,如果你需要gparted的话是需要另外安装的,我们的源里有,安装方法:

sudo apt-get install gparted

这三个软件的不同之处主要在于直观性、易用性,fdisk可以说最难用,而cfdisk有了字符的界面,gparted则有了基于gnome的更漂亮的界 面,从功能的角度上来说三个软件都差不多,但是有时不得不使用fdisk,这里我对三个软件的使用进行一定的说明:

fdisk:

sudo fdisk -l

会列出所有硬盘之实体使用情况。

sudo fdisk -l /dev/hda

会列出第一快IDE硬盘的使用情况,相应的来讲可以换用/dev/sda等等。

sudo fdisk /dev/hda

进入硬盘分区模式,进入这个模式后所有操作不会立刻生效,只会在得到确认的命令后才会起作用。

fdisk的子命令:

m 显示所有命令提示。
p 现实硬盘分区情况。
a 设定硬盘起动区。
n 设定新的硬盘分区。
l 列出所有文件系统类型。
e 在输入n的情况下才能用,指增加一个扩展分区。
p 在输入n的情况下才能用,指增加一个主要分区。
l 在输入n的情况下才能用,指增加一个逻辑分区。
t 改变硬盘分区属性。
d 删除硬盘分区。
q 结束但不对硬盘进行修改。
w 结束而且对硬盘进行修改。

现在对fdisk的结果进行详解,以下是在我的电脑上运行的例子:

dongmh@home:~$ sudo fdisk -l /dev/hda

Disk /dev/hda: 60.0 GB, 60022480896 bytes

255 heads, 63 sectors/track, 7297 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System

/dev/hda1   *	           1      1276    10249438+  7     HPFS/NTFS

/dev/hda2            1277       7297    48363682+   f     W95 Ext'd (LBA)

/dev/hda5            1277        2551    10241406   7    HPFS/NTFS

/dev/hda6            2552        3835    10313698+  7    HPFS/NTFS

/dev/hda7            3836        3957    979933+   82  Linux swap / Solaris

/dev/hda8            3958        4261    2441848+  83  Linux

/dev/hda9            4262        4869    4883728+  83  Linux

/dev/hda10          4870        7297    19502878+  83  Linux

上面的提示表示,我的硬盘有60G,255个磁面,63个扇区,7297个磁柱;每个磁柱容量是8225280 Byte 大约是8225KB或者8MB。如果分区不是在柱面边界处结束的,那么磁盘块数(blocks)旁边就会出现一个加号。你可以删除这个分区,(按照上面的显示——起始磁柱和终止磁柱)键入柱面数重新创建它,也可以保持原状,浪费一点儿硬盘空间。

Device      Boot  Start  End  Blocks        Id            System

分区序列     引导    开始 终止  容量      分区类型ID    分区类型

引导: 表示引导分区,在上面的例子中 hda1 是引导分区;

开始: 表示的一个分区从X cylinder(磁柱)开始;

结束: 表示一个分区到 Y cylinder(磁柱)结束;

然后进入分区模式:

dongmh@home:~$ sudo fdisk /dev/hda

The number of cylinders for this disk is set to 7297.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):

上面的提示大概的意思就是我的硬盘大于1024个磁柱所以呢,老板本的lilo会不买我的帐,可以不用在意。

我们先尝试命令d

Command (m for help): d
Partition number (1-10):

它问你要删除哪个分区,一定要注意,如果删了扩展分区,那么所有逻辑分区一块跟着挂,一定要小心。

我输入7,再输入p就可以看到自己的硬盘分区少了一个。

接下来我添加一个逻辑分区:

Command (m for help): n
Command action
l   logical (5 or over)
p   primary partition (1-4)
l
First cylinder (3836-7297, default 3836):3836
Last cylinder or +size or +sizeM or +sizeK (3836-3957, default 3957): 3957

这里的两个问题是,开始的磁柱是哪个,结束的磁柱是哪个。在结束的磁柱处可以输入结束柱面数,也可以用+size or +sizeM or +sizeK来输入(这样可能会造成分区不是在柱面边界处结束)。

然后是对分区类型的改变,我输入t:

Command (m for help): t
Partition number (1-10): 7
Hex code (type L to list codes): L

输入L可以看到所有磁盘的文件类型列列表,然后再从输入相应的文件系统ID就可以对分区文件系统进行更改了。

最后如果需要保存就输入w,不许要则输入q,这样分区修改就算结束了。

cfdisk、gparted:

cfdisk有非常直观的界面,而gparted甚至是中文的,所以这里我就不再多作介绍。

第三部分 格式化

分完区还不算完事,格式化后才能正常使用,这里介绍下linux的格式化命令:

sudo mkfs -t 文件系统 存储设备

格式化就是这么简单,或者也可以这样输入命令:

sudo mkfs.ext3 /dev/sda6      把该设备格式化成ext3文件系统。
sudo mke2fs -j /dev/sda6      把该设备格式化成ext3文件系统。
sudo mkfs.ext2 /dev/sda6      把该设备格式化成ext2文件系统。
sudo mke2fs /dev/sda6       把该设备格式化成ext2文件系统。
sudo mkfs.reiserfs /dev/sda6    把该设备格式化成reiserfs文件系统。
sudo mkfs.vfat /dev/sda6      把该设备格式化成fat32文件系统。
sudo mkfs.msdos /dev/sda6      把该设备格式化成fat16文件系统,msdos文件系统就是fat16。
sudo mkdosfs /dev/sda6      把该设备格式化成fat16文件系统,同mkfs.msdos
sudo mkswap /dev/sda6       把该设备格式化成swap文件系统。

这样分好区,并且格式化结束,就可以进行挂载了。

第四部分 挂载文件系统

挂载文件系统有两个方法,一种是利用mount命令,另外一种是修改/etc/fstab,因为修改/etc/fstab并不方便,所以我只介绍mount。mount命令的用法如下:

sudo mount [-t 文件系统 ] [-o 选项] 设备 目录

使用这个命令前需要先生成一个用于被挂的目录,创建了这样的目录后有个细节问题就是更改这个目录的权限,最起码要你可读写,这样才能使你挂载的硬

盘可读写,当然ntfs的硬盘除外。

chmod 777 目录

而挂载时,也有可以省事的地方,比如说你不知道你的分区是什么文件类型你可以:

sudo mount -t auto  设备 目录

或者也可以:

sudo mount  设备 目录

顺便说下swap分区,一般不这样挂载,而采用加载命令进行加载:

sudo  swapon 设备

相应的也就产生了:

sudo swapoff  设备

第五部分 对文件系统进行扫描

各位朋友对Windows中的scandisk不寞生吧,在Linux中就有类似这样的工具fsck,不过fsck 可不仅仅是扫描,还能修正文件系统的一些问题。一定要注意的是fsck 扫描文件系统时一定要在修复模式或把设备umount后进行,否则会有重大的问题发生。

其中fsck 默认支持文件系统ext2,如果想支持ext3文件系统的扫描,应该加-j 参数,最好是我们应该根据不同的文件系统来调用不同的扫描工具,比如fsck.ext2,fsck.jfs,fsck.msdos,fsck.ext3,fsck.reiserfs。

对于fsck.ext2和fsck.ext3有几个常用参数,如下:

-p            自动修复文件系统存在的问题;
-y            如果文件系统有问题,会跳出提示是否修复,如果修复请按y;
-c            对文件系统进行坏块检查;这是一个极为漫长的过程;
-n            不对文件系统做任何改变,只要扫描,以检测是否有问题;

那么使用它的方法就是:

sudo fsck.ext3 -p /dev/hda6

第六部分 结语

任何对硬盘操作都是有危险的,千万不要随便练手,在可能的情况下尽量使用带有界面的gparted,不到万不得已不要随便格式化。这是为了你的数据和硬

盘寿命着想。

阅读(2132) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~