ubuntu 硬盘操作参考
第一部分 查看硬盘上的状态
硬盘上有些什么、文件们都有多大,在有些时候我们是需要关心的,所以这里简单介绍两个命令:df、du。
df:
df用来检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 df的参数有:
代码:
-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
-k 以k字节为单位显示。
-i 显示i节点信息,而不是磁盘块。
-t 显示各指定类型的文件系统的磁盘空间使用情况。
-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
-T 显示文件系统类型。
对df命令进行详解:
引用:
dongmh@home:~$ df
Filesystem 1K-块 已用 可用 已用% 挂载点
/dev/sda12 3842376 242424 3404764 7% /
这个就是最基本用法,你可能觉得奇怪已用和可用加在一起不等于前面的块的总值,这是因为默认状况下,有留给root的专门用于维护管理的保留空间,不用在意。其他的用法无非是加上不同的参数显示不同的信息,不再反复说明。
du:
du用于统计目录或文件所占磁盘空间的大小。 它的参数如下:
代码:
-s 对每个Names参数只给出占用的数据块总数。
-a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
-b 以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)。
-k 以1024字节为单位列出磁盘空间使用情况。
-c 最后再加上一个总计(系统缺省设置)。
-l 计算所有的文件大小,对硬链接文件,则计算多次。
-x 跳过在不同文件系统上的目录不予统计。
这个命令也如同df一样简单,因为特殊缘故所以不举例,大家可以自己试下,很刷屏的。
第二部分 分区
在 一个有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
会列出所有硬盘之实体使用情况。
代码:
会列出第一快IDE硬盘的使用情况,响应的来讲可以换用/dev/sda等等。
sudo fdisk -l /dev/hda
代码:
sudo fdisk /dev/hda
进入硬盘分区模式,进入这个模式后所有操作不会立刻生效,只会在得到确认的命令后才会起作用。
代码:
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。
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
这里的两个问题是,开始的磁柱是哪个,结束的磁柱是哪个。在结束的磁柱处可以用+sizeM +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,不到万不得已不要随便格式化。这是为了你的数据和硬盘寿命着想。