linux下的磁盘操作

简介:

linux 系统中所有的硬件设备都是通过文件的方式来使用和表达的。位于/dev目录下的。成为设备文件。设备文件分为;
      字符设备文件和块设备文件。字符设备文件也被称为"raw"设备文件。比如打印机。终(TTY)。      

      块设备文件。是以数据块的方式存取的。系统通过块设备存取文件的时候,先从内存的buffer中读或写数据,而不是直接传送数据到物理磁盘。这样提高了磁盘的I/O性能。
    企业常用硬盘:sas stat ssd
    linux磁盘设备常用方案:主设备号+次设备号+磁盘分区编号
        1.主设备号代表设备的类型:比如:hd 代表IDE硬盘。sd代表SCSI硬盘。tty代表终端设备。
        2.次设备号代表相同设备的序号:‘a-z‘就表示设备的序号。例如:/dev/sda 和 /dev/sdb 就表示第一和第二块
        SCSI 硬盘。当然在IDE硬盘中也可能出现系统只有一块磁盘。却显示 /dev/hdb。这与硬盘的跳线有关。
        3.磁盘分区号:用x 表示在每块磁盘上划分的磁盘分区编号。
        比如 /dev/sdbx 就表示第二块SCSI硬盘的第“x“个分区。
    磁盘的使用
        linux下设备对应的是硬盘分区,对任何设备都需要通过挂载的方式实现的要完成挂载,需要3个条件:
        1.挂载磁盘分区的文件系统类型。
        2.要挂载分区对应的设备文件
        3.已经存在的目录作为挂载点
  常用于硬盘的命令:fdisk (应用范围:容量小于 2T) 分为命令行模式和交互模式(一般进入磁盘的操作都是交互模式)
        查看系统的磁盘设备:# fdisk -l  (可以查看系统上的硬盘信息)
            # fdisk /dev/sda (如果后面接具体的硬盘就是对硬盘的操作)当然所有的操作前必须卸载硬盘。
        挂载命令:
        # mount /dev/sdbx /data  挂载分区
        # mount /dev/cdrom /mnt 挂载光盘
        # mount -t ntfs-3g /dev/sdc /data1  挂载移动硬盘需要指定文件类型 -t ntfs-3g
        卸载命令:
        # umount /mnt 卸载分区
        如果硬盘故障怎么修复;
            进入 linux rescure模式下:执行  fsck /dev/sdb -y (fsck 一般会自动识别文件类型)
        查看分区的情况:
                    # df -hT
            Filesystem     Type   Size  Used Avail Use% Mounted on
            /dev/sda2      ext4    29G  6.0G   22G  22% /
            tmpfs          tmpfs  495M     0  495M   0% /dev/shm
            /dev/sda1      ext4   194M   29M  155M  16% /boot
            /dev/sda5      ext4    48G  185M   46G   1% /data
        这里密切关注  Use% 代表磁盘已经使用的空间。如果为100%,则表示磁盘满了。系统运行受阻。
    磁盘分区的划分标准:
        磁盘分区由主分区,扩展分区和逻辑分区组成。
        在一块硬盘上,主分区最大个数是4个,扩展分区算是一个主分区。扩展分区可以建立多个逻辑分区。
        主分区包括扩展分区编号:1-4.逻辑分区从5开始。逻辑分区建立在扩展分区的基础上而非主分区上。
        扩展分区可以理解为逻辑分区的"容器"。实际使用的是主分区和逻辑分区。
        下面看一下 /dev/sda 硬盘的情况:
        # fdisk -l
        Disk /dev/sda: 85.9 GB, 85899345920 bytes
        255 heads, 63 sectors/track, 10443 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: 0x000411d2
           Device Boot      Start         End      Blocks   Id  System
        /dev/sda1   *           1          26      204800   83  Linux
        /dev/sda2              26        3851    30720000   83  Linux
        /dev/sda3            3851        4106     2048000   82  Linux swap / Solaris
        /dev/sda4            4106       10444    50912256    5  Extended
        /dev/sda5            4106       10444    50911232   83  Linux
        这里的start 和end 的单位是柱面。 Id 选项 83代表主分区和逻辑分区
        82 代表swap交换分区   5代表 扩展分区(扩展分区不能使用。只是作为逻辑分区的容器)
        8e 代表lvm 分区 ( 7 NTFS 分区)
    硬盘分区:
    # fdisk dev/sdb
    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)
   这里日常用到的是:
    d :删除一个分区
        选定分区号即可。
    n : 增加一个新的分区包括2个选项 e 扩展分区 p 主分区
         e   extended
        p   primary partition (1-4)
        还有就是设定大小的时候,如果不输入数值。默认占有剩余所有的空间。
    p :显示分区信息
    q : 退出交互操作,不保存操作的内容
    t : 改变分区类型
        输入后提示输入L 查看分区标识。设定相应的类型
    w :写入飞哪去表信息到硬盘,保存操作退出
    创建分区实例:
        Command (m for help): n
        Command action
           e   extended
           p   primary partition (1-4)
        p
        Partition number (1-4): 2
        First cylinder (263-2610, default 263): 
        Using default value 263
        Last cylinder, +cylinders or +size{K,M,G} (263-2610, default 2610): +2G

        需要注意的是这里:如果想分很多分区的话。第四个一定是 extended (扩展分区)
        因为系统只支持4个主分区。(扩展分区可以算作一个主分区)
        多余4个的分区可以在逻辑分区表示(前提是建立在扩展分区基础上的)
    创建完成,可以w 退出
    如何使用,创建的分区?
        格式化分区,然后挂载磁盘。
        # fdisk /dev/sdb -l  (查看磁盘分区情况)
        Disk /dev/sdb: 21.5 GB, 21474836480 bytes
        255 heads, 63 sectors/track, 2610 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: 0x5ab8b6fd

           Device Boot      Start         End      Blocks   Id  System
        /dev/sdb1               1         654     5253223+  83  Linux
        /dev/sdb2             655        1177     4200997+  83  Linux
        /dev/sdb3            1178        1570     3156772+  83  Linux
        /dev/sdb4            1571        2610     8353800    5  Extended
        /dev/sdb5            1571        1832     2104483+  83  Linux
        /dev/sdb6            1833        2610     6249253+  83  Linux
        # mkfs.ext4 /dev/sdb6   (格式化文件系统位ext4)
        # mkdir /sdb6  (创建挂载点)
        # mount /dev/sdb6 /sdb6  (挂载分区)
        # df -hT | grep sdb6   (查看结果)
        Filesystem     Type   Size  Used Avail Use% Mounted on
        /dev/sdb6      ext4   5.9G  140M  5.5G   3% /sdb6
    如果磁盘大于2T。使用parted 工具。可以完成超大磁盘分区。
        既然分区大了,那么分区表也做了响应的调整。
        分区表分为:MBR 和GPT 两种。
        MBR 支持2T以下硬盘容量。最多支持4个主分区或3个主分区+ 1个扩展分区。正式因为这个原因:
        我们要使用多个分区。就必须利用扩展分区作为容器扩容。
        GPT 支持大于2T 的硬盘容量。最多128个分区。最大达到18EB。
    首先安装parted   #  yum install parted -y
    parted 的使用:
        # parted  (进入parted 分区交互模式)
        GNU Parted 2.1
        Using /dev/sda
        Welcome to GNU Parted! Type 'help' to view a list of commands.
        (parted) select /dev/sdb  (切换磁盘分区 sda是系统盘不可以分的。sdb 是新加测试硬盘)
        Using /dev/sdb
        (parted) p free  (p是print的简写。查看磁盘情况。free 显示剩余空间)                                                         
        Model: VMware, VMware Virtual S (scsi)
        Disk /dev/sdb: 21.5GB
        Sector size (logical/physical): 512B/512B
        Partition Table: msdoc
        (parted) mklabel gpt   (前面说了要想划分更大的分区。分区表一定要改变。mklabel  创建分区表类型)
        Warning: Partition(s) on /dev/sdb are being used.                         
        Ignore/Cancel? Ignore  (这里是测试实验。所以选择忽略。真实环境如果磁盘又数据或挂载选择 Cancel)
        Yes/No? yes     (是否进行执行)
        (parted) mkpart primary 0gb 15gb  (创建主分区。开始位置,结束位置。硬盘大小 15G)
        (parted) mkpart primary 15gb 21.5gb (创建第二个主分区。开始位置15G 结束位置21.5G 。大小位6.5G)
        (parted) rm  2 (删除第二个主分区)
        (parted) quit (离开 parted 交互模式)
    然后就是格式化分区。挂载和fdisk无异。
    这里查看的时候建议用:
        # parted /dev/sdb p
        不建议用 # fdisk /dev/sdb -l (这种方式不支持gpt 分区表。所以显示的分区是一个整体)










本文转自 swallow_zys  51CTO博客,原文链接:http://blog.51cto.com/12042068/1898405,如需转载请自行联系原作者
目录
相关文章
|
28天前
|
Linux Shell C语言
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
29 1
|
28天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
36 1
|
28天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux mkfs.ext2 命令使用教程
【Shell 命令集合 磁盘维护 】Linux mkfs.ext2 命令使用教程
37 1
|
28天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建DOS文件系统 mkdosfs命令使用指南
【Shell 命令集合 磁盘维护 】Linux 创建DOS文件系统 mkdosfs命令使用指南
31 2
|
28天前
|
存储 算法 Shell
【Shell 命令集合 磁盘维护 】Linux 创建启动磁盘 mkbootdisk命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建启动磁盘 mkbootdisk命令使用教程
28 1
|
28天前
|
存储 安全 Shell
【Shell 命令集合 磁盘维护 】Linux mformat 命令使用教程
【Shell 命令集合 磁盘维护 】Linux mformat 命令使用教程
28 0
|
28天前
|
Shell Linux API
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
31 1
|
28天前
|
Shell Linux C语言
【Shell 命令集合 磁盘维护 】Linux 创建一个初始化内存盘 mkinitrd命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建一个初始化内存盘 mkinitrd命令使用教程
33 0
|
28天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建Minix文件系统 mkfs.minix 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建Minix文件系统 mkfs.minix 命令使用教程
33 0
|
28天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 建立ext2文件系统 mke2fs命令使用教程
【Shell 命令集合 磁盘维护 】Linux 建立ext2文件系统 mke2fs命令使用教程
30 2