码迷,mamicode.com
首页 > 系统相关 > 详细

Linux磁盘管理及文件系统

时间:2015-09-07 16:54:43      阅读:342      评论:0      收藏:0      [点我收藏+]

标签:linux

Linux磁盘管理及文件系统


1、Linux磁盘管理

   识别硬盘设备:/dev/sd

   标记不同的硬盘设备:/dev/sd[a-z]

   标记同一设备上的不同分区:/dev/sd[a-z][1-]

   1-4: 主或扩展分区标识

   5+:逻辑分区标识


2、设备文件:特殊文件

   设备号:

     major, minor

     major: 设备类型

     minor: 同一类型下的不同设备

     “块”:block,随机设备

     “字符”:character,线性设备


3、分区工具:

(1)fdisk, parted, sfdisk  

注:最多支持在一块硬盘上的15个分区;

   fdisk工具的使用:

   分区管理交互式命令:

     p: 显示

     n: 创建

     d: 删除

     t: 修改分区ID

     l: 列出所有支持ID类型

     w: 保存退出

     q: 放弃修改并退出

     m: 获取帮助


(2)创建完成之后,查看内核是否已经识别新的分区:

     # cat /proc/partitions


例子:

[root@localhost ~]# cat /proc/partitions
major minor  #blocks  name

   8        0  125829120 sda
   8        1     512000 sda1
   8        2   62423040 sda2
   8        3    2097152 sda3
 253        0   41447424 dm-0
 253        1   10485760 dm-1
 253        2   10485760 dm-2



(3)有三个命令可以让内核重读磁盘分区表:

     CentOS 5: partprobe [DEVICE]

     CentOS 6,7: 

     partx

     kpartx


     partx命令:

       partx DEVICE

       partx -a DEVICE

       partx -a -n M:N DEVICE


     kpartx命令:

       kpartx -af DEVICE


例子:

[root@localhost ~]# partx -a /dev/sda
[root@localhost ~]# cat /proc/partitions
major minor  #blocks  name

   8        0  125829120 sda
   8        1     512000 sda1
   8        2   62423040 sda2
   8        3    2097152 sda3
   8        4         31 sda4
   8        5   10488317 sda5
   8        6   20980858 sda6
 253        0   41447424 dm-0
 253        1   10485760 dm-1
 253        2   10485760 dm-2
[root@localhost ~]# ls /dev/sda
sda   sda1  sda2  sda3  sda4  sda5  sda6


4、Linux文件系统管理

(1)文件系统:

   VFS:Virtual File System

     Linux:ext2, ext3, ext4, reiserfs, xfs, btrfs, swap

     光盘:iso9660

     Windows: fat32(vfat), ntfs

     Unix: ffs, ufs, jfs, jfs2

     网络文件系统:nfs, cifs

     集群文件系统:ocfs2, gfs2

     分布式文件系统:ceph, 

     moosefs, mogilefs, hdfs, gfs, glusterfs


(2)日志型文件系统

   非日志型文件系统:ext2

   日志型文件系统:ext3


(3)swap:交换分区



5、创建文件系统:

   在分区上执行格式化(高级格式化)

   要使用某种文件系统,满足两个条件:

   内核中:支持此种文件系统

   用户空间:有文件系统管理工具


(1)创建工具:mkfs (make filesystem)

   mkfs -t type DEVICE

   mkfs.type DEVICE


(2)ext系列文件系统的专用管理工具:

   mke2fs -t {ext2|ext3|ext4} DEVICE

     -b BLOCK: 1024, 2048, 4096

     -L ‘LABEL‘: 设定卷标


(3)blkid命令:

   UUID---Universally Unique Identifiers

   全局唯一标识符:

    blkid DEVICE

     LABEL, UUID, TYPE


例子:

[root@localhost ~]# blkid /dev/sda1
/dev/sda1: UUID="dbde3019-886c-4eb3-8a79-b15825f7f929" TYPE="ext4"

6、Linux文件系统管理:

(1)创建文件系统:

   mkfs, mkfs -t type = mkfs.type

   ext:mke2fs 

   mke2fs [OPTION]... DEVICE

     -t {ext2|ext3|ext4}

     -b {1024|2048|4096}

     -L ‘LABEL‘

     -j: mke2fs -t ext3

     -i #:

     -N #:

     -m #: 预留磁盘空间占据多大百分比的空间为后期管理使用;

     O FEATURE[,...]

     -O ^FEATURE:关闭此特性

     has_journal


(2)文件系统属性查看及调整工具:

   e2label          #不影响分区中的数据

   e2lable DEVICE [LABEL]


(3)显示ext系列文件系统的属性,或调整其属性;

   tune2fs          #不影响分区中的数据

     -l:显示超级块中的信息;显示整个文件的属性及布局等相关信息;

     -L ‘LABEL‘:修改卷标;

     -m #: 调整预留给管理员的管理空间百分比;

     -j: ext2 --> ext3

     -O:文件系统属性的启动或关闭 

     -o:文件系统默认挂载选项的启用或关闭


(4)dumpe2fs:

     -h: 仅显示超级块信息;


例子:

[root@localhost ~]# mke2fs -L lisir -t ext4 /dev/sda5
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655776 inodes, 2622079 blocks
131103 blocks (5.00%) reserved for the super user
........

[root@localhost ~]# tune2fs -o acl /dev/sda5  #开启acl
tune2fs 1.41.12 (17-May-2010)
[root@localhost ~]# tune2fs -L lisir01 /dev/sda5  #修改卷标
tune2fs 1.41.12 (17-May-2010)
[root@localhost ~]# tune2fs -l /dev/sda5  #查看分区信息
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   lisir01
Last mounted on:          <not available>
Filesystem UUID:          1d305c60-761e-447e-b585-6c2416d13228
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    acl


7、文件系统检测:

注:由于硬盘常年读写,系统会造成系统文件损坏,导致重启后无法登陆到系统,fsck不仅可以对文件系统进行扫描,还能修正文件系统的一些问题。值得注意的是fsck扫描文件系统时一定要在单用户模式、修复模式或把设备umount后进行。

(1)fsck: Filesystem check

   fsck -t type

   fsck.type

     -a: 自动修复错误

     -r: 交互式修复错误

     -f: 强制检测


(2)e2fsck:ext系列文件系统专用的检测修复工具;

     -y: 自动回答为“yes”

     f:force


(3)文件系统的挂载和使用:

   kernel --> rootfs(分区)

   rootfs分区:

   bin, sbin, etc, lib, lib64, dev, tmp, proc, sys

   /sbin/init

   将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件系统访问    入口的行为,称之为挂载;

   解除此关联关系的过程:卸载;

   挂载点:mount point, 设备挂载至目录;

注意:挂载点在挂载在之后,其内部原有的文件会被暂时隐藏;建立使用空目录做为挂载点;


例子:

[root@localhost ~]# fsck.ext4 -a /dev/sda5  #自动修复sda5磁盘错误
lisir01: clean, 11/655776 files, 79700/2622079 blocks
[root@localhost ~]# fsck.ext4 -f /dev/sda5  #强制检测磁盘sda5
e2fsck 1.41.12 (17-May-2010)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
lisir01: 11/655776 files (0.0% non-contiguous), 79700/2622079 blocks

8、挂载方法:

   mount:通过读取/etc/mtab文件来显示当前系统所有已经挂载的设备;

   mount -a:挂载/etc/fstab文件中的所有支持自动挂载的文件系统;


   mount [options] [-o options] DEVICE MOUNT_POINT

     [options]:命令选项

     [-o options]:挂载选项


   -o 挂载选项:

     async:异步模式

     sync: 同步模式

     atime/noatime:是否更新访问时间戳;

     diratime/nodiratime:是否更新目录的访问时间戳;

     auto/noauto: 是否允许此设备被自动挂载;

     exec/noexec:是否允许执行此文件系统上应用程序;

     dev/nodev:是否支持在此设备上使用设备文件;

     suid/nosuid:

     remount:重新挂载

     ro

     rw

     user/nouser: 是否允许普通挂载此设备;

     acl:是否支持此设备上使用facl;

     defaults:rw, suid, dev, exec, auto, nouser, and async


   DEVICE: 要挂载的设备

     (1) 设备文件:/dev/sda5

     (2) 卷标:-L ‘LABEL‘

     (3) UUID:-U ‘UUID‘

     (4) 伪文件系统名称


   MOUNT_POINT: 挂载点

     常用选项:

     -t type:文件系统类型

     -r: 以“只读”方式挂载此文件系统

     -w: 以“读写”方式挂载此文件系统

     -n:每个文件系统在挂载时都会自动更新/etc/mtab文件,-n用于禁止此功能;

     此时,如果想查看挂载的所有文件系统:cat /proc/mounts

     -a: 自动挂载所有支持自动挂载的设备;

     -B:绑定目录至另一个目录上;


   umount:卸载命令

     # umount DEVICE

     # umount MOUNT_POINT


   查看正在访问指定挂载点的进程:

     # fuser -v MOUNT_POINT


   终止所有正在访问指定的挂载点的进程:

     # fuser -km MOUNT_POINT


例子:

[root@localhost ~]# umount /mydata/
umount: /mydata: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
[root@localhost ~]# fuser -v /mydata/
                     用户     进程号 权限   命令
/mydata/:            root       3764 ..c.. bash
[root@localhost ~]# fuser -km /mydata/
/mydata/:             3764c
[root@localhost ~]# umount /mydata/


9、交换分区:

(1)free命令:

   查看memory和swap的使用状态

     -m: 以MB为单位

     -g: 以GB为单位 


(2)mkswap:创建交换分区

   mkswap [option] DEVICE

     -L ‘LABEL‘

(3)swapon:启用交换分区

   swapon [option] [DEVICE]

     -a: 激活所有交换分区

     -p PRIORITY: 设定其优先级;


(4)swapoff:禁用交换分区

   swapoff [option] [DEVICE]


例子:

[root@localhost ~]# mkswap -L swap01 /dev/sda6
Setting up swapspace version 1, size = 20980852 KiB
LABEL=swap01, UUID=3835c7ba-8b9b-4047-931c-a19eed79d7c4
[root@localhost ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       2097148 0       -1
[root@localhost ~]# swapon -a /dev/sda6
[root@localhost ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       2097148 0       -1
/dev/sda6                               partition       20980852        0       -2
[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           988        728        260          3         18        327
-/+ buffers/cache:        382        606
Swap:        22537          0      22537


10、文件系统等空间占用信息的查看工个:

(1)df: disk free

       -h: human-readable

       -i: inode数量

       -P: 以Posix兼容的格式输出


(2)du: disk usage

       -h: human-readable

       -s: summary


11、文件系统相关挂载配置文件:/etc/fstab

   每行定义一个文件系统;

   要挂载的设备:

     设备文件、LABEL=、UUID=、伪文件系统名称

   挂载选项:

     defaults、acl

   转储频率:

     0: 不转储

     1: 每天转储

     2: 每隔一天转储

   自检次序:

     0:不自检

     1:首先自检,通常只有/才为1

     2:

     ...

技术分享


12、文件系统上的链接文件:

   硬链接:

   两个路径指向同一个inode

   不能对目录进行;

   不能跨分区进行

   指向同一个inode的多个不同路径; 创建文件的硬链接会增加inode的引用计数;删除硬链接仅是删除    其一个访问路径,只到最后一个路径被删除; 


   符号链接:

   链接文件的数据指向另一个文件路径;

   可以对目录进行;

   可以跨分区;

   指向的是另一个文件路径;而非inode;

   对文件创建符号链接不会增加其引用计数;删除原文件,符号链接文件也将无法;

   ln [-s] SRC DEST

     -s:symbolic link 

     -v:verbose


例子:

[root@localhost ~]# ln -s /etc/fstab ./123
[root@localhost ~]# ll
总用量 100
lrwxrwxrwx. 1 root root    10 9月   7 15:28 123 -> /etc/fstab


本文出自 “做自己想做的事!” 博客,请务必保留此出处http://807257775.blog.51cto.com/2448194/1692328

Linux磁盘管理及文件系统

标签:linux

原文地址:http://807257775.blog.51cto.com/2448194/1692328

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!