Linux 命令大全(二)——磁盘管理

二、磁盘管理

2.1 文件系统配置文件

  • /etc/filesystems:系统指定的测试挂载文件系统类型
  • /proc/filesystemsLinux 系统已经加载的文件系统类型
  • /lib/modules/2.6.18-274.el5/kernel/fs/
  • 文件系统类型的驱动所在目录
  • /etc/fstab
  • /etc/mtab

2.2 linux 文件类型的颜色

linux文件颜色的含义:
  • 蓝色文件----------目录
  • 白色文件----------一般性文件,如文本文件,配置文件,源码文件等
  • 浅蓝色文件----------链接文件,主要是使用 ln 命令建立的文件
  • 绿色文件----------可执行文件,可执行的程序
  • 红色文件-----------压缩文件或者包文件
  • 灰色件-----------其他文件
  • 红色闪烁件-----------链接的文件有问题了
  • 黄色件-----------设备文件
Linux 下用字符表示的文件类型
  • -:普通文件
  • d:目录文件
  • l:链接文件
  • b:块设备文件
  • c:字符设备文件
  • p:管道文件

2.3 文件系统操作命令

1. df

  列出文件系统的整体磁盘使用情况

df -h
df -i
''' 
文件系统容量已用 可用 已用% 挂载点 
/dev/mapper/VolGroup00-LogVol00 16G 4.2G 11G 28% / 
/dev/sda1 99M 13M 81M 14% /boot tmpfs 1005M 0 1005M 0% 
/dev/shm
''' 
df -h
''' 
文件系统 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 
'''
df -i

2. du

  列出目录所占空间

du -sh # 显示当前目录大小
du –sh / # 显示/目录下的所有目录大小

3. dumpe2fs

  显示当前的磁盘状态

4. ln:连接文件(快捷方式)

  不加任何参数就进行连接,就是 hard link,

  加上-s 就是 Symbolic link

  hard link 不支持目录和跨文件系统

5. Fdisk

  显示系统中的所有分区内容, 不支持大于 2T 的磁盘

fdisk -l
'''
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
'''
fdisk -l

6. Parted

  2T以上磁盘分区工具。支持大于 2T 的磁盘,2T 以下的最好还是用 Fdisk 来分区。

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
'''

# 删除第 2 个分区
parted /dev/hda rm 2

# 创建分区
parted /dev/hda mkpart primary ext3 120MB 200MB 
'''
primary 代表主分区,还可以是extended 扩展分区,logical 逻辑分区
ext3 代表分区类型,120MB 是开始位置,最好是接上一分区的结束位置,200M 是结束位置
'''
View Code

7. partprobe

  更新分区表/磁盘,用于重读分区表。

  当出现删除文件后,出现仍然占用空间,可以 partprobe 在不重启的情况下重读分区

8. Mkfs

  磁盘格式化

# Mkfs –t 文件系统格式 设备文件名(盘符)
mkfs -t ext3 /dev/hda1

9. e2labe

  设置磁盘卷标

# e2label 设备名称 新 label 名称,可以用 dumpe2fs 查看卷标
e2label /dev/hda1 aixi

10. Mount

  挂载磁盘,命令格式:mount [-t vfstype] [-o options] device dir

# 重新挂载
mount –o remount,rw,auto /

# 重新挂载根目录,设置为可读写
mount –n –o remount,rw /
'''
-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:
  光盘或光盘镜像:iso9660
  DOS fat16 文件系统:msdos
  Windows 9x fat32 文件系统:vfat
  Windows NT ntfs 文件系统:ntfs
  Mount Windows 文件网络共享:smbfsUNIX(LINUX) 文件网络共享:nfs
-o options 主要用来描述设备或档案的挂接方式。常用的参数有:
  loop:用来把一个文件当成硬盘分区挂接上系统
  ro:采用只读方式挂接设备
  rw:采用读写方式挂接设备
  iocharset:指定访问文件系统所用字符集
device 要挂接(mount)的设备。
dir 设备在系统上的挂接点(mount point)。
'''
相关参数

10.1 挂接光盘镜像文件

  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 里的所有文件了。

10.2 挂接移动硬盘

  对 linux 系统而言,USB 接口的移动硬盘是当作 SCSI 设备对待的。插入移动硬盘之前,应先用 fdisk –l 或more /proc/partitions 查看系统的硬盘和硬盘分区情况。

# 对 linux 系统而言,USB 接口的移动硬盘是当作 SCSI 设备对待的。插入移动硬盘之前,应先用 fdisk –l 或
more /proc/partitions 查看系统的硬盘和硬盘分区情况。
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 查看系统
的硬盘和硬盘分区情况
'''
 fdisk -l
'''
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytesDevice 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
View Code

10.3 挂接U盘

  和 USB 接口的移动硬盘一样对 linux 系统而言 U 盘也是当作 SCSI 设备对待的。使用方法和移动硬盘完全一样。

10.4 挂接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环境下测试通过。

10.5 挂接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 环境下测试通过。
  4. 权限问题:假设 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

11. umount

  将文件设备卸载

# 用设备文件名来卸载
umount /dev/hda1

# 用挂载点来卸载
umount /aixi
# 如果提示设备忙,可以使用如下命令卸载,选项 –l 并不是马上 umount,而是在该目录空闲后再 umount。
umount -l /mnt/hda1

# 如果比较急,可用如下命令:-f 代表强制卸载
umount -f /mnt/hda1

#如果还不行,可使用 fuser -m –v /dev/hda1 来查询是哪些程序在占用,结束这些程序进程即可卸载
sync && fuser -m /dev/hda1 –k
# 使用这条命令后一定可以卸载

12. 交换分区

  交换分区最大容量为 64G,最多只能建 32 个

创建交换分区

# 构建 swap 格式
fdisk /dev/hdan+容量pt(修改系统 ID)分区号82pw
mkswap /dev/hda2(以上划分的分区号)

# 加载即完成增加 swap
swapon /dev/hda2

# 显示目前使用的 Swap 设备
swapon –s

创建交换文件

# 创建大文件
dd if=/dev/hda1 of=/aixi/swap bs=1M count=64

mkswap /aixi/swap
swapon /aixi/swap
完成
# 取消交换分区或者交换文件 swapoff /aixi/swap swapoff /dev/hda2

查看

free –m 

相关知识点链接

  Linux 命令大全(一)——常用命令
  Linux 命令大全(二)——磁盘管理
  Linux 命令大全(三)——用户管理
  Linux 命令大全(四)——文件权限
  Linux 命令大全(五)——目录结构
  Linux 命令大全(六)——软件安装
  Linux 命令大全(七)——时间管理
  Linux 命令大全(八)——启动引导
  Linux 命令大全(九)——运行级别
  Linux 命令大全(十)——进程管理
  Linux 命令大全(十一)——资源监控
  Linux 命令大全(十二)——系统服务
  Linux 命令大全(十三)——环境管理
  Linux 命令大全(十四)——网络管理
  Linux 命令大全(十五)——配置文件
  Linux 命令大全(十六)——计划任务
  Linux 命令大全(十七)——VI/VIM编辑器
  Linux 命令大全(十八)——压缩打包
  Linux 命令大全(十九)——性能优化及常见问题

                       

相关推荐