Linux磁盘管理命令

Linux有着管理各种存储设备的强大能力。Linux把所有磁盘都当作文件管理,从而简化我们对其进行的读写等操作。

IDE接口的硬盘在Linux中命名为:/dev/hd{a|b|c……},比如/dev/hda;

其他硬盘比如SATA接口的硬盘命名为:/dev/sd{a|b|c……},比如/dev/sda。

注:{}表示任选一。

每个硬盘的分区命名:

    IDE硬盘(以/dev/hda为例)为:

        /dev/hda1

        /dev/hda2

        /dev/hda3

        ……

    SATA或其他硬盘(以/dev/sda为例)为:

        /dev/sda1

        /dev/sda2

        /dev/sda3

磁盘属于块设备,我们可以使用ls命令查看下服务器上所有已安装的磁盘:

[root@CENTOSLINUX ~]# ls -l /dev | grep "[[:space:]][h|s]" | grep "^b"
brw-rw----. 1 root disk      8,   0 Dec  3 11:10 sda
brw-rw----. 1 root disk      8,   1 Dec  3 11:10 sda1
brw-rw----. 1 root disk      8,   2 Dec  3 11:10 sda2
brw-rw----. 1 root disk      8,  16 Dec  3 11:10 sdb
brw-rw----. 1 root cdrom    11,   0 Dec  3 11:10 sr0

注:命令中的两个grep命令用来过滤出磁盘所在的行。

说到分区,我们不得不提下MBR,MBR是mater boot recoder的简写,其存在于硬盘的0磁道0扇区,占据512B的空间(每个扇区也就512B),这512B的空间又细分如下:

    446B:存放boot loader,几开机引导程序;

    64B:存放分区信息,每条分区信息占16B的空间,所以其最多存储4条分区信息,

            所以每个硬盘最多能分出4个主分区或3个主分区加一个扩展分区;

    剩下的2B空间:是此MBR的有效性标识。

通过上面的信息我们知道每个硬盘最多能分出4个主分区或3个主分区加一个扩展分区,那是不是每个硬盘最多只能分4个分区呢?

非也,我们可以在这四个分区中留出一个做为扩展分区,扩展分区又可以细分出多个逻辑分区。扩展分区中的逻辑分区编号只能从5开始,比如我有一块硬盘,划分出2个主分区和1个扩展分区(主分区+扩展分区数量不能超过4个),扩展分区下又有两个逻辑分区,其变号为:

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             263         524     2104515   83  Linux
/dev/sdb3             525        1830    10490445    5  Extended
/dev/sdb5             525        1178     5253223+  83  Linux
/dev/sdb6            1179        1830     5237158+  83  Linux

但是分区是怎么划分出来的呢?

是通过fdisk命令:

使用方法:fdisk /dev/DEVICE_NAME 或者 fdisk -l

直接在shell中输入fdisk -l只会把所有的硬盘和分区信息输出到屏幕,可以自行测试。

对于fdisk /dev/DEVICE

比如:

[root@CENTOSLINUX ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x1c365eed.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
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):

会进入/dev/sdb的操作界面,直接在提示符处输入对应的命令按提示操作即可,当不知道怎么操作时可以输入m查看帮助:

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)

    常用的输入:

        p: 显示已有分区

        n: 创建

        d: 删除

        w: 保存

        q: 退出

        l: 列出可用的分区类型,类型很重要,比如swap只能用82类型的分区;

创建一个分区:

Command (m for help): n    <---n表示创建新分区
Command action
   e   extended
   p   primary partition (1-4)
p    <---表示创建主分区,e表示创建扩展分区
Partition number (1-4): 1    <---输入主分区号,第一个则输入1
First cylinder (1-2610, default 1):     <---输入分区开始的磁柱,直接回车按默认即可
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +2G    <---输入结束的磁柱,也可输入大小,比如+2G或者+2000M。回车即创建完成。

创建扩展分区与创建主分区步骤相同;

在扩展分区下创建一个逻辑分区:

Command (m for help): n
Command action
   l   logical (5 or over)    <---注意逻辑分区号是从5开始的。
   p   primary partition (1-4)
l    <---l(L的小写)表示逻辑分区
First cylinder (525-1830, default 525): 
Using default value 525
Last cylinder, +cylinders or +size{K,M,G} (525-1830, default 1830): +5G

创建逻辑分区与创建主分区过程基本相同,只是创建逻辑分区不需要输入分区号。

切记,操作完成退出前别忘了输入w执行保存分区信息,否则分区失败,也就是没有分区;

最后输入q,退出fdisk命令。

更多fdisk用法请自行man。

分区完成可以在shell中使用 fdisk -l 查看或者 cat /proc/partitions 查看。

若 cat /proc/partitions 后没有显示新建的分区,可以使用partx命令让内核重新读取分区信息:

    partx -a /dev/sdb;

          -a表示add;

          更多partx用法请自行man。

创建分区后还是不能立即使用的,因为还要通过格式化和挂载才能使用,我们就先来看下怎么格式化分区吧;

格式化就是把分区格式化成特定的文件系统;

Linux支持的文件系统有:ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap;

其中ext2和VFAT为非日志文件系统,其余全部为日志文件系统;日志文件系统较为先进,稳定性较好。

    还有两个特殊的:

        swap内存交换分区,用于存放内存交换页面文件;

        Linux的虚拟文件系统: VFS,用于虚拟所有的文件系统,给用户提供统一的接口。

为什么需要文件系统呢?

文件系统是为方便操作系统对分区的管理而对空间进行的一系列规划整理,打个比方,你要做一个书架,你是不是要好好的划分下书架的空间以便于更好管理书架并放置更多的书呢?

ext系列文件系统在分区中是以如下方式组织分区空间的:

blob.png

格式化分区的具体命令有mkfs,mke2fs,用法如下:

    1. mkfs.FS_TYPE OPTION DEVICE 或者 mkfs -t FS_TYPE DEVICE

                    有用OPTION:

                            -L 'LABEL' 添加lable

                    注:FS_TYPE为ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap等文件系统名称。

    2. mke2fs OPTION DEVICE_NAME,DEVICE_NAME指分区名称

            OPTION:

                -t {ext2|ext3|ext4}

                -b {1024|2048|4096} 设置存储基本单元block的大小

                -L 'LABLE' 用于设置分区的LABEL

                -j 相当于-t ext3, 即使用日志功能

                -i #: 为数据空间中每多少个字节创建一个inode, 此大小不应该小于block的大小,

                                否则inode的数量将比block还多。。。。。。

                -N #: 为数据空间创建多少个inode

                -m #: 为管理人员预留的空间占据的百分比. 默认是5, 即5%

                -O FEATURE[,…] 启用指定特性

                -O ^FEATURE[,…] 关闭指定特性

                注:mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3

其他常用命令:

    1. blkid 分区: 显示分区信息

        或者:

        blkid -U UUID 根据UUID查找设备

        blkid -L LABEL 根据LABEL查找设备

    2. e2lable DEVICE [LABEL],查看或设定LABEL

    3. tune2fs OPTION DEVICE_NAME: 重新设定ext系统文件系统可调整参数的值

        OPTION:

            -l 查看超级块信息

            -L 'LABEL' 设定LABEL

            -m # 修改预留给管理人员的空间百分比

            -j: 打开日志功能, 将ext2 升级为ext3

            -O 文件系统属性启用或禁用

            -o 指定默认挂载选项

    4. dumpe2fs OPTION DEVICE_NAME: 输出DEVICE的信息

        OPTION:

            -h: 查看超级块信息

    5. mkswap: 创建交换空间

        用法:mkswap [OPTION] DEVICE

        注意:前提调整DEVICE类型为82,可用类型可以通过fdisk DEVICE然后输入l查看。

文件系统监测与修复命令:

    1.fsck: file system check的简写,用法如下:

        fsck.FS_TYPE 或 fsck -t FS_TYPE

            FS_TYPE 一定要与分区实际的文件系统类型对应

            OPTION:

                -a 自动修改错误

                -r 交互式修复错误

                e2fsck: ext系列文件系统专用

                -y 自动回答为yes

                -f 强制修复

原创文章,作者:Jacen,如若转载,请注明出处:http://www.178linux.com/9634

(0)
JacenJacen
上一篇 2015-12-06
下一篇 2015-12-06

相关推荐

  • 文件系统管理_设定文件系统的配额

    认识配置配额系统 :为控制用户使用的空间的大小,在linux可以实现对分区的大小控制,控制用户在这个分区内使用空间的大小同时还可以对用户的文件个数实现控制。 在linux系统中其遵循文件分区来实现控制 磁盘的配额只针对单个分区来实现控制,不能对单块磁盘(硬盘)来实现控制的 【搭建试验环境 1】 怎样把某一个文件夹(/home)单独放到(迁移)一个独立的分区中…

    Linux干货 2017-04-24
  • 马哥教育网络班22期+第1周课程练习

    问题1: 计算机组成如下:CPU、存储器、输入设备、输出设备1、中央处理器(Central Processing Unit,简称 CPU)。它主要由控制器、运算器等组成,并采用大规模集成电路工艺制成的芯片,又称微处理器芯片。   CPU又由运算器和控制器组成。1)运算器 运算器又称算术逻辑单元(Arithmetic Logic Unit简…

    Linux干货 2016-08-15
  • rpm&yum

    软件包管理 软件运行环境 软件包基础 Rpm包管理 Yum管理 定制yum仓库 编译安装 ABI 应用程序的二进制接口,和操作系统相关,一个程序二进制编好了,想要在你的系统上跑,要符合你的操作系统的接口标准Windows:PE  linux:ELF WINDOWS和LINUX二进制程序是不兼容的 库级别的虚拟化 Linux:WINE 可以让Windows程序…

    Linux干货 2018-01-02
  • Linux程序包管理

      Linux的各个release版本开发商,在发布各种应用程序,以及一些团体发布应用程序时,通常会根据发布的程序所适应的开发语言,使用环境,预设参数等,事先编译完成一个可以在相应平台上安装的程序包供使用者直接使用,该程序包含有安装前(preinstall)操作系统环境检测的脚本,程序包中所有文件的相关信息,程序预定义的配置参数文件,程序…

    Linux干货 2016-11-30
  • 对防火墙的初步认识

      防火墙,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测。    目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7…

    Linux干货 2017-06-15
  • 创建私有CA和申请证书流程

    创建私有CA和申请证书流程 由于很多时候做实验需要用到证书,就需要自己搭建一个私有CA来给自己颁发证书。同时通过整理创建CA和申请证书、吊销证书的过程加深自己的理解. PKI:Publilc Key Infrastructure 公钥基础设施:     签证机构:CA     注册机构:RA &nb…

    Linux干货 2016-12-01