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

linux 学习之磁盘管理和文件系统

时间:2015-09-15 15:01:30      阅读:345      评论:0      收藏:0      [点我收藏+]

标签:linux   sector   

linux磁盘管理

    硬盘一般分为两种:

                (1)机械式硬盘

                         主要组成部分: 

                                 track:磁道

                                 sector:扇区

                                  cylinder:分区的基本单位  

                                  MBR:硬盘首扇区,

                                       大小:512bytes  

                                             其中:446:bootloader

                                                        64:  文件分配表(其中16为一个分区)   

                                                         2:最后2个字节55AA

                (2)固态硬盘SSD

    磁盘接口类型:

             主要分为:

                    IDE :133MB/S  

                     SCSI:640MB/s

                     SATA:6Gbps(目前最常用的)

                      SAS:6Gbps

                     USB:480MB/S

   识别磁盘的设备:

             linux中的路径:/dev/sd

                 /dev/sd[a-z][1-]

            其中【a-z】代表不同的磁盘【1-】代表不同的分区(正常情况下主分区或扩展分区共4个,其他为逻辑分区)

    设备文件:特殊文件

          设备号:  major主设备号,主要区别设备类型

                          minor辅设备号,主要是去呗同一类别设备下的不同设备

          设备文件中:block代表块设备,随机设备   character代表字符设备  线性设备

  磁盘分区:

         意思是指将硬盘上的空间分割为多个小的空间,每个空间可以独立使用文件系统

  分区工具:

          fdisk(最常用)    parted    sfdisk  

         fdisk的使用:(正常情况下在一块硬盘上最多支持分区15个)

                  分区常用的子命令:

                          p:显示

                           n:创建

                           d:删除

                            t:修改分区ID

                           l:列出所有支持的分区ID

    例:

技术分享

技术分享

   其中分区完成后,查看内核是否读取方法:

        cat /proc/partitions

   如果没有读取,下列命令可以让内核立刻读取该分区

        (1)partx命令:

                   用法:

                     partx  DEVICE

                     partx  -a DEVICE

          (2) kpartx命令:

     kpartx -af DEVICE

                                                   

  linux文件系统管理(VFS虚拟文件系统):

     文件系统主要类型有:

      (1)linux:ext2,ext3,ext4,reiserfs,  xfs,  btrfs,  swap                                 

      (2)光盘:iso9660

      (3)Windows: fat32(vfat), ntfs

      (4)Unix: ffs, ufs, jfs, jfs2

      (5)网络文件系统:nfs, cifs

      (6)集群文件系统:ocfs2, gfs2

      (7)分布式文件系统:ceph,

   其中linux文件系统还可以分为:

             (1)日志型文件系统(最常用的)

                           日志区

                             ext3

             (2)非日志性文件系统

                           ext2

              (3)内存交换文件系统

                          SWAP

  创建文件系统:

        创建文件系统就等同于在分区上执行高级格式化

        条件:

            (1)内核中支持此种文件系统

            (2)用户空间由系统管理工具

        创建工具:

             mkfs 命令

              mkfs  -t   type DEVICE 或者  mkfs.type DEVICE

       文件系统查看:

             blkid  命令

技术分享

 linux系统管理:

    (1)创建文件系统(ext系列)

              格式:  mke2fs [OPTIONS] .....DEVICE

                    [OPTIONS]选项 :

                               -t  {ext2|ext3|ext4} 指明类型

                               -b {1024|2048|4096}  创建时指明块大小

                               -L:‘卷标’指明卷标

                                     (e2lable DEVICE [LABEL]修改卷标的命令)

                                -j:等同于mke2fs  -t ext3

                                -i#:指明每个INODE中字节数

                                 -N#:指定indode数量

                                -m#:指明预留多大的空间给后期管理使用

                                 -O FEATURE[...]:开启某个特性,相应的^即时关闭某个特性

    (2)文件系统属性查看及修改工具

                tune2fs:显示ext系列文件系统的属性,或者调整期属性

                          选项:

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

                                  -L: 修改卷标

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

                  -j: ext2 --> ext3

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

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

                  (dumpe2fs:-h:  显示超级块信息)

 (3)文件系统检测

             fsck :

                     fsck -t type   或者  fsck .type (type不能写错)

                         -a:自动修复错误

                         -r:交互式修复错误

                         -f:强制修复错误

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

         -y: 自动回答为“yes”

         -f:force 强制修复

                       

   文件系统的挂载和使用:

            linux文件系统的启动,是由kernel关联根分区来实现的,根文件系统下面主要包含:                                     bin,sbin,etc,lib,lib64,dev,tmp,proc,sys文件

      挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录作为其他文件系统访问入库

          相反,解除此关联关系即卸载

     挂载点:mount_point  ,将需要挂载的设备挂载至挂载点(挂载点在挂载之后,其原有的文件将会被隐藏,最好   使用空目录作为挂载点)

     查看挂载:

           (1)mount:通过读取/etc/mtab 文件显示当前系统所挂载的设备

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

     挂载命令:

        mount  [options](命令选项)[-o options](挂载选项) DEVICE(设备) MOUNT_POINT(挂载点)

                    [options](命令选项)

                           -t type :指明文件类型

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

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

                          -n:每个文件系统挂载后都会自动更新至/etc/mtab文件中,-n禁止此功能

                                      (此时如果查看的话cat  /proc/mounts)   

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

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

                    [-o options](挂载选项)  

                              -async/sync:异步模式和同步模式(文件系统存取数据的时候模式)

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

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

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

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

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

                               remount:重新挂载

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

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

                              默认挂载模式(defaults):rw, suid, dev, exec, auto, nouser, and async           

                    DEVICE:需要挂载的设备

                          (1)设备文件

                          (2)卷标

                           (3)UUID

                           (4)伪文件系统名称      

    卸载命令:       

                umount,使用方法:umount DEVICE或者umount  MOUNT_POINT

               注:如果该设备上有进程正在使用,卸载无法进行,需要先终止进程然后再继续进行卸载

                   查看正在当前正在进行的进程:fuser -v MOUNT_POINT

                   终止所有改挂载点上的进程:fuser -km MOUNT_POINT

   文件系统的相关挂载文件:

         挂载文件在系统的/etc/fstab文件中

技术分享

  第一位:要挂载的设备:设备文件、LABEL=、UUID=、伪文件系统名称 

  第二位:挂载点

  第三位:文件类型

  第四位:挂载选项:默认defaults

  第五位:转储频率(通常情况下为0)

                       0: 不转储

                       1: 每天转储

                       2: 每隔一天转储  

  第六位:自检频次(通常情况下为0)

                       0:不自检

                       1:首先自检,通常只有根文件才为1 

                            ...

   交换分区:

          (1) 查看内存和交换分区的的使用状态free        技术分享

       (2)创建交换分区mkswap

              mkswap [option] DEVICE

       (3)启动交换分区swapon

              swapon [option] [DEVICE]

                     -a: 激活所有交换分区     

                      -p PRIORITY: 设定其优先级;  

       (4)禁用交换分区swapoff

                swapoff [option] [DEVICE]

  文件系统等空间占用空间看工具:

             df:当前文件系统最大可用空间及使用情形

                       -h:可识别

                       -i: inode数量

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

             du:查询文件和目录的磁盘使用情况

                      -h:可识别

                     -s: summary

  文件系统上面的链接文件:

           链接文件主要分为两类:硬链接和符号链接

                  硬链接的特点:

                   (1)两个路径指向同一个inode

                   (2)不能对目录进行,不能跨分区进行

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

                符号链接的特性:

                    (1)链接文件的数据指向另一个文件路径

                    (2)可以对目录进行,可以跨分区

                    (3)指向的是另一个文件路径,而非inode  对文件创建符号链接不会增加其引用计数;删除原文件,符号链接文件也将无法;

                   创建符号链接的命令:

                        ln -s SRC DEST

      联系 创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录             

       

[root@localhost ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb
[root@localhost ~]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It‘s strongly recommended to
         switch off the mode (command ‘c‘) and change display units to
         sectors (command ‘u‘).

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition‘s system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): p

Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x59e52da3

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-13054, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054): +10G

Command (m for help): p

Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x59e52da3

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1306    10490413+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# cat /proc/partitions 
major minor  #blocks  name

   8        0  125829120 sda
   8        1     512000 sda1
   8        2  125316096 sda2
   8       16  104857600 sdb
   8       17   10490413 sdb1
 253        0   52428800 dm-0
 253        1     983040 dm-1
 253        2   71901184 dm-2
[root@localhost ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1
[root@localhost ~]# partx -a /dev/sdb1
last arg is not the whole disk
call: partx -opts device wholedisk
[root@localhost ~]# partx -a /dev/sdb1
last arg is not the whole disk
call: partx -opts device wholedisk
[root@localhost ~]# partx -a /dev/sdb1
last arg is not the whole disk
call: partx -opts device wholedisk
[root@localhost ~]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It‘s strongly recommended to
         switch off the mode (command ‘c‘) and change display units to
         sectors (command ‘u‘).

Command (m for help): p

Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x59e52da3

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1306    10490413+  83  Linux

Command (m for help): q

[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="wu" UUID="271ffe46-f897-4c02-9559-813f0c3a5446" SEC_TYPE="ext2" TYPE="ext3" 
[root@localhost ~]# mke2fs -t ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655776 inodes, 2622603 blocks
131130 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2688548864
81 block groups
32768 blocks per group, 32768 fragments per group
8096 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="7ac5a57f-8f32-45d5-b362-1f51204a27fb" TYPE="ext4" 
[root@localhost ~]# e2label /dev/sdb1 wu
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="7ac5a57f-8f32-45d5-b362-1f51204a27fb" TYPE="ext4" LABEL="wu" 
[root@localhost ~]# vim /etc/fstab 
[root@localhost ~]# mkdir -v /mydate
mkdir: 已创建目录 "/mydate"
[root@localhost ~]#

         








linux 学习之磁盘管理和文件系统

标签:linux   sector   

原文地址:http://10498794.blog.51cto.com/10488794/1694801

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