磁盘管理
文件系统配置文件
/etc/filesystems
:系统指定的测试挂载文件系统类型
/proc/filesystems
:
Linux
系统已经加载的文件系统类型
/lib/modules/2.6.18-274.el5/kernel/fs/
文件系统类型的驱动所在目录
/etc/fstab
/etc/mtab
linux
文件类型的颜色
linux
文件颜色的含义:蓝色代表目录 绿色代表可执行文件 红色表示压缩文件 浅蓝色表示链接文件 灰
色表示其他文件 红色闪烁表示链接的文件有问题了 黄色表示设备文件
蓝色文件
----------
目录
白色文件
----------
一般性文件,如文本文件,配置文件,源码文件等
浅蓝色文件
----------
链接文件,主要是使用
ln
命令建立的文件
绿色文件
----------
可执行文件,可执行的程序
红色文件
-----------
压缩文件或者包文件
Linux
下用字符表示的文件类型
-
:普通文件
d
:目录文件
l
:链接文件
b
:块设备文件
c
:字符设备文件
p
:管道文件
文件系统操作命令
df
:列出文件系统的整体磁盘使用情况
[root@centos57 ~]# df -h
文件系统
容量
已用 可用 已用
%
挂载点
/dev/mapper/VolGroup00-LogVol00
16G 4.2G 11G 28% /
/dev/sda1 99M 13M 81M 14% /boot
tmpfs 1005M 0 1005M 0% /dev/shm
[root@centos57 ~]# df -i
文件系统
Inode (I)
已用
(I)
可用
(I)
已用
%
挂载点
/dev/mapper/VolGroup00-LogVol00
4186112 154441 4031671 4% /
/dev/sda1 26104 36 26068 1% /boot
tmpfs 257210 1 257209 1% /dev/shm
.host:/ 0 0 0 - /mnt/hgfs
du
:列出目录所占空间
du -sh
显示当前目录大小
du –sh /
显示
/
目录下的所有目录大小
dumpe2fs
:显示当前的磁盘状态
ln
:连接文件(快捷方式)
ln –sf
源文件 目标文件
不加任何参数就进行连接,就是
hard link
,加上
-s
就是
Symbolic link
,
hard link
不支持目录和跨文件系统。
Fdisk
Fdisk
不支持大于
2T
的磁盘
Fdisk –l
显示系统中的所有分区内容
[root@centos57 ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
总扇区数,可以和下面的最后扇区数比较,看剩余
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2610 20860402+ 8e Linux LVM
[root@centos57 ~]# fdisk /dev/sda2
Parted
:
2T
以上磁盘分区工具
支持大于
2T
的磁盘,
2T
以下的最好还是用
Fdisk
来分区。
[root@centos57 aixi]# parted /dev/hda print
Model: VMware Virtual IDE Hard Drive (ide)
Disk /dev/hda: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system
标志
1 32.3kB 101MB 101MB
主分区
ext3
2
101MB 357MB 256MB
主分区
linux-swap
# parted /dev/hda rm
2
删除第
2
个分区
# parted /dev/hda mkpart primary ext3 120MB 200MB
创建分区,
primary
代表主分区,还可以是
extended
扩展分区,
logical
逻辑分区
;ext3
代表分区类型,
120MB
是开始位置,最好是接上一分区的结束位
置,
200M
是结束位置
partprobe :
更新分区表
/
磁盘
用于重读分区表,当出现删除文件后
,
出现仍然占用空间。可以
partprobe
在不重启的情况下重读分区
# partprobe
这个命令执行完毕之后不会输出任何返回信息,你可以使用
mke2fs
命令在新的分区上创建文件系统。
Mkfs:
磁盘格式化
Mkfs –t
文件系统格式 设备文件名(盘符)
[root@centos57 ~]# mkfs -t ext3 /dev/hda1
e2label
:设置磁盘卷标
e2label
设备名称 新
label
名称,可以用
dumpe2fs
查看卷标
[root@centos57 ~]# e2label /dev/hda1 aixi
Mount:
挂载磁盘
命令格式:
mount [-t vfstype] [-o options] device dir
mount –o remount,rw,auto /
重新挂载
mount –n –o remount,rw /
重新挂载根目录,设置为可读写
其中:
1.-t vfstype
指定文件系统的类型,通常不必指定。
mount
会自动选择正确的类型。常用类型有:
光盘或光盘镜像:
iso9660
DOS fat16
文件系统:
msdos
Windows 9x fat32
文件系统:
vfat
Windows NT ntfs
文件系统:
ntfs
Mount Windows
文件网络共享:
smbfs
UNIX(LINUX)
文件网络共享:
nfs
2.-o options
主要用来描述设备或档案的挂接方式。常用的参数有:
loop
:用来把一个文件当成硬盘分区挂接上系统
ro
:采用只读方式挂接设备
rw
:采用读写方式挂接设备
iocharset
:指定访问文件系统所用字符集
3.device
要挂接
(mount)
的设备。
4.dir
设备在系统上的挂接点
(mount point)
。
挂接光盘镜像文件
1
、从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。
#cp /dev/cdrom /home/sunky/mydisk.iso
或
#dd if=/dev/cdrom of=/home/sunky/mydisk.iso
注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件
/home/sunky/mydisk.iso
2
、将文件和目录制作成光盘镜像文件,执行下面的命令。
#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir
注:这条命令将
/home/sunky/mydir
目录下所有的目录和文件制作成光盘镜像文件
/home/sunky/mydisk.iso
,光盘卷标为:
mydisk
3
、光盘镜像文件的挂接
(mount)
#mkdir /mnt/vcdrom
注:建立一个目录用来作挂接点
(mount point)
#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
注:使用
/mnt/vcdrom
就可以访问盘镜像文件
mydisk.iso
里的所有文件了。
挂接移动硬盘
对
linux
系统而言,
USB
接口的移动硬盘是当作
SCSI
设备对待的。插入移动硬盘之前,应先用
fdisk
–
l
或
more /proc/partitions
查看系统的硬盘和硬盘分区情况。
[root at pldyrouter /]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
在这里可以清楚地看到系统有一块
SCSI
硬盘
/dev/sda
和它的四个磁盘分区
/dev/sda1 -- /dev/sda4,
/dev/sda5
是分区
/dev/sda4
的逻辑分区。接好移动硬盘后,再用
fdisk
–
l
或
more /proc/partitions
查看系统
的硬盘和硬盘分区情况
[root at pldyrouter /]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
Disk /dev/sdc: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 510 4096543+ 7 HPFS/NTFS
/dev/sdc2 511 4864 34973505 f Win95 Ext'd (LBA)
/dev/sdc5 511 4864 34973473+ b Win95 FAT32
大家应该可以发现多了一个
SCSI
硬盘
/dev/sdc
和它的两个磁盘分区
/dev/sdc1?
、
/dev/sdc2,
其中
/dev/sdc5
是
/dev/sdc2
分区的逻辑分区。我们可以使用下面的命令挂接
/dev/sdc1
和
/dev/sdc5
。
#mkdir -p /mnt/usbhd1
#mkdir -p /mnt/usbhd2
注:建立目录用来作挂接点
(mount point)
#mount -t ntfs /dev/sdc1 /mnt/usbhd1
#mount -t vfat /dev/sdc5 /mnt/usbhd2
注:对
ntfs
格式的磁盘分区应使用
-t ntfs
参数,对
fat32
格式的磁盘分区应使用
-t vfat
参数。若汉字
文件名显示为乱码或不显示,可以使用下面的命令格式。
#mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1
#mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2
linux
系统下使用
fdisk
分区命令和
mkfs
文件系统创建命令可以将移动硬盘的分区制作成
linux
系统所特
有的
ext2
、
ext3
格式。这样,在
linux
下使用就更方便了。使用下面的命令直接挂接即可。
#mount /dev/sdc1 /mnt/usbhd1
挂接
U
盘
和
USB
接口的移动硬盘一样对
linux
系统而言
U
盘也是当作
SCSI
设备对待的。使用方法和移动硬盘完全
一样。插入
U
盘之前,应先用
fdisk
–
l
或
more /proc/partitions
查看系统的硬盘和硬盘分区情况。
[root at pldyrouter root]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
插入
U
盘后,再用
fdisk
–
l
或
more /proc/partitions
查看系统的硬盘和硬盘分区情况。
[root at pldyrouter root]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
Disk /dev/sdd: 131 MB, 131072000 bytes
9 heads, 32 sectors/track, 888 cylinders
Units = cylinders of 288 * 512 = 147456 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 * 1 889 127983+ b Win95 FAT32
Partition 1 has different physical/logical endings:
phys=(1000, 8, 32) logical=(888, 7, 31)
系统多了一个
SCSI
硬盘
/dev/sdd
和一个磁盘分区
/dev/sdd1,/dev/sdd1
就是我们要挂接的
U
盘。
#mkdir -p /mnt/usb
注:建立一个目录用来作挂接点
(mount point)
#mount -t vfat /dev/sdd1 /mnt/usb
注:现在可以通过
/mnt/usb
来访问
U
盘了
,
若汉字文件名显示为乱码或不显示,可以使用下面的命令。
#mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb
挂接
Windows
文件共享
Windows
网络共享的核心是
SMB/CIFS
,在
linux
下要挂接
(mount)windows
的磁盘共享,就必须安装和使
用
samba
软件包。现在流行的
linux
发行版绝大多数已经包含了
samba
软件包,如果安装
linux
系统时未安
装
samba
请首先安装
samba
。当然也可以到
www.samba.org
网站下载
......
新的版本是
3.0.10
版。
当
windows
系统共享设置好以后,就可以在
linux
客户端挂接
(mount)
了,具体操作如下:
# mkdir
–
p /mnt/samba
注:建立一个目录用来作挂接点
(mount point)
# mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba
注:
administrator
和
pldy123
是
ip
地址为
10.140.133.23 windows
计算机的一个用户名和密码,
c$
是这
台计算机的一个磁盘共享
如此就可以在
linux
系统上通过
/mnt/samba
来访问
windows
系统磁盘上的文件了。以上操作在
redhat as
server 3
、
redflag server 4.1
、
suse server 9
以及
windows NT 4.0
、
windows 2000
、
windows xp
、
windows 2003
环境下测试通过。
挂接
UNIX
系统
NFS
文件共享
类似于
windows
的网络共享,
UNIX(Linux)
系统也有自己的网络共享,那就是
NFS(
网络文件系统
)
,下面
我们就以
SUN Solaris2.8
和
REDHAT as server 3
为例简单介绍一下在
linux
下如何
mount nfs
网络共享。
在
linux
客户端挂接
(mount)NFS
磁盘共享之前,必须先配置好
NFS
服务端。
1
、
Solaris
系统
NFS
服务端配置方法如下:
(1)
修改
/etc/dfs/dfstab,
增加共享目录
share -F nfs -o rw /export/home/sunky
(2)
启动
nfs
服务
# /etc/init.d/nfs.server start
(3)NFS
服务启动以后,也可以使用下面的命令增加新的共享
# share /export/home/sunky1
# share /export/home/sunky2
注:
/export/home/sunky
和
/export/home/sunky1
是准备共享的目录
2
、
linux
系统
NFS
服务端配置方法如下:
(1)
修改
/etc/exports,
增加共享目录
/export/home/sunky 10.140.133.23(rw)
/export/home/sunky1 *(rw)
/export/home/sunky2 linux-client(rw)
注:
/export/home/
目录下的
sunky
、
sunky1
、
sunky2
是准备共享的目录,
10.140.133.23
、
*
、
linux-client
是被允许挂接此共享
linux
客户机的
IP
地址或主机名。如果要使用主机名
linux-client
必须在服务端主机
/etc/hosts
文件里增加
linux-client
主机
ip
定义。格式如下:
10.140.133.23 linux-client
(2)
启动与停止
NFS
服务
/etc/rc.d/init.d/portmap start (
在
REDHAT
中
PORTMAP
是默认启动的
)
/etc/rc.d/init.d/nfs start
启动
NFS
服务
/etc/rc.d/init.d/nfs stop
停止
NFS
服务
注:若修改
/etc/export
文件增加新的共享,应先停止
NFS
服务,再启动
NFS
服务方能使新增加的共享
起作用。使用命令
exportfs -rv
也可以达到同样的效果。
3
、
linux
客户端挂接
(mount)
其他
linux
系统或
UNIX
系统的
NFS
共享
# mkdir
–
p /mnt/nfs
注:建立一个目录用来作挂接点
(mount point)
#mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs
注:这里我们假设
10.140.133.9
是
NFS
服务端的主机
IP
地址,当然这里也可以使用主机名,但必须
在本机
/etc/hosts
文件里增加服务端
ip
定义。
/export/home/sunky
为服务端共享的目录。
如此就可以在
linux
客户端通过
/mnt/nfs
来访问其它
linux
系统或
UNIX
系统以
NFS
方式共享出来的文件
了。以上操作在
redhat as server 3
、
redflag server4.1
、
suse server 9
以及
Solaris 7
、
Solaris 8
、
Solaris 9 for
x86&sparc
环境下测试通过。
权限问题:
假设
server
端的使用者
jack, user id
为
1818, gid
为
1818, client
端也有一个使用者
jack
,但是
uid
及
gid
是
1818
。
client
端的
jack
希望能完全读写
server
端的
/home/jack
这个目录。
server
端的
/etc/exports
是
这样写的:
/home/jack *(rw,all_squash,anonuid=1818,anongid=1818)
这个的配置文件的意思是,所有
client
端的使用者存取
server
端
/home/jack
这
目录时,都会
map
成
server
端的
jack (uid,gid=1818)
。我
mount
的结果是
1. client
端的
root
可以完全存取该目录
,
包括读、写、杀……等
2. client
端的
jack (uid,gid=1818)
我可以做:
rm -rf server_jack/*
cp something server_jack/
mkdir server_jack/a
umount
:将文件设备卸载
[root@centos57 ~]# umount /dev/hda1
用设备文件名来卸载
[root@centos57 ~]# umount /aixi
用挂载点来卸载
umount: /aixi: device is busy
如果提示设备忙,不急可以使用如下命令卸载
#
umount -l /mnt/hda1
选项 –
l
并不是马上
umount
,而是在该目录空闲后再
umount
。
如果比较急,可用如下命令:
#
umount -f /mnt/hda1
-f
代表强制卸载
如果还不行,可使用
fuser -m –v /dev/hda1
来查询是哪些程序在占用,结束这些程序进程即可卸载
[root@centos57 aixi]# sync && fuser -m /dev/hda1 –k
使用这条命令后一定可以卸载
交换分区
交换分区最大容量为
64G
,最多只能建
32
个
,
创建交换分区
#fdisk /dev/hda
n
+
容量
p
t(
修改系统
ID)
分区号
82
p
w
#mkswap /dev/hda2
(以上划分的分区号)
构建
swap
格式
#swapon /dev/hda2
加载即完成增加
swap
#swapon –s
显示目前使用的
Swap
设备
创建交换文件
# dd if=/dev/hda1 of=/aixi/swap bs=1M count=64
创建大文件
#mkswap /aixi/swap
#swapon /aixi/swap
完成
取消交换分区或者交换文件
#swapon –s
显示目前使用的
Swap
设备
#swapoff /aixi/swap
#swapoff /dev/hda2
#free –m
查看