undefined

磁盘相关命令

一、查看硬盘信息相关命令

  1. df 命令只能显示系统已经挂载的硬盘

  2. lsblk 查看块设备。

    不带参数时会列出所有硬盘,根节点代表硬盘,二级节点代表磁盘上的分区。使用 -d 选项只列出硬盘,不列出分区信息

    1
    2
    3
    4
    5
    6
    7
    8
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    ├─sda 8:0 0 238.5G 0 disk
    ├─sda1 8:1 0 487M 0 part
    ├─sda7 8:7 0 108.2G 0 part
    └─sda8 8:8 0 95.4G 0 part /
    sdc 8:32 0 931.5G 0 disk
    ├─sdc1 8:33 0 46.6G 0 part
    └─sdc2 8:34 0 885G 0 part /data
  3. lshw可以打印硬件的详细信息

  4. blkid 可以打印块设备的一些信息

    1
    2
    3
    /dev/sda1: UUID="a46515d1-f18a-411f-bca1-d6facca7f462" TYPE="ext4" PARTUUID="3af33866-01"
    /dev/sda5: UUID="ea9852c9-e752-4f3f-852b-5486d6fbca18" TYPE="swap" PARTUUID="3af33866-05"
    /dev/sda6: UUID="a4ed37e3-174b-4e2a-9840-c921274fa686" TYPE="ext4" PARTUUID="3af33866-06"
  5. fdisk 用来格式化硬盘、分区等的常用的分区表操纵工具,也可以使用 -l 选项打印硬盘信息

二、添加新磁盘分区并挂载

  1. 查看磁盘名字

    1
    2
    3
    # lsblk
    sdb 8:16 0 238.5G 0 disk
    └─sdb1 8:17 0 238.5G 0 part /data2
  2. 创建一个新分区

    1
    2
    3
    4
    5
    6
    # fdisk /dev/sdb
    可以输入 m 获取帮助
    命令 n 可以添加一个新分区
    命令 p 可以打印分区的一些信息
    命令 w 可以保存设置并退出
    然后可以通过 lsblk 查看磁盘分区情况
  3. 对分区进行格式化

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # parted -l  // 查看磁盘分区的文件系统格式
    Model: ATA WDC WD10EZEX-08W (scsi)
    Disk /dev/sdc: 1000GB
    Sector size (logical/physical): 512B/4096B
    Partition Table: msdos
    Disk Flags:
    Number Start End Size Type File system Flags
    1 1049kB 50.0GB 50.0GB primary ext4
    2 50.0GB 1000GB 950GB primary ext4
    1
    2
    # mkfs.xfs /dev/sdc1  // 将磁盘分区 /dev/sdc1 格式化成 xfs 
    # mkfs.ext4 /dev/sdc2 // 将磁盘分区 /dev/sdc2 格式化成 ext4
  4. 把分区挂载到一个目录

    1
    2
    3
    # mkdir /data
    # mount /dev/sdb1 /data // 挂载到 /data 目录下
    # lsblk // 使用 lsblk 查看
  5. 设置永久挂载

    1
    2
    3
    4
    # blkid /dev/sdb1  // 获取这个磁盘分区的 UUID
    # vi /etc/fstab // 将挂载点写入开机启动
    # 设置系统自动挂载磁盘,格式如下,加入一行
    UUID=be7c41c7-d034-4cab-9940-b152de375162     /data      xfs    defaults      0  0

    如果不想使用了,可以卸载目录,必须在待卸载目录以外的地方使用 umount 命令进行卸载

    1
    umount /data   # 卸载 /data 目录 

三、分区相关知识点

一个硬盘可以有1到3个主分区和1个扩展分区,也可以只有主分区而没有扩展分区,但主分区必须至少有1个,扩展分区则最多只有1个,且主分区+扩展分区总共不能超过4个。逻辑分区可以有若干个。

  1. 创建分区

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [root@freeman ~]# fdisk /dev/sdb
    Command (m for help): n <- 新建分区
    Command action <- 选择要创建的分区类型
    e extended <- 扩展分区
    p primary partition (1-4) <- 主分区
    p <- 输入建立主分区
    Partition number (1-4):1 <- 分区编号
    First cylinder (1-652, default 1): <- 柱面起始值,直接回车默认
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): +1G <-分区大小
    Command (m for help): w <- 保存分区表, 完毕会退出fdisk命令
    The partition table has been altered!

    Calling ioctl() to re-read partition table.
    Syncing disks.
  2. 删除分区。(可以先 umount 卸载分区,以免出现不必要的问题)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    [root@freeman ~]# fdisk /dev/sdb   <-进入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 <- 输入p打印当前硬盘的分区信息

    Disk /dev/sdb: 5368 MB, 5368709120 bytes
    255 heads, 63 sectors/track, 652 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: 0xcca98924

    Device Boot Start End Blocks Id System
    /dev/sdb1 1 523 4200966 83 Linux
    /dev/sdb2 524 537 112455 83 Linux
    /dev/sdb3 538 563 208845 5 Extended
    /dev/sdb5 538 563 208813+ 83 Linux
    /dev/sdb6 409 422 112423+ 83 Linux

    Command (m for help): d <- 输入d删除分区
    Partition number (1-5): <- 输入要删除的分区编号
    ...
    Command (m for help): w <- 分区删除完毕,输入w,写入磁盘分区表
    The partition table has been altered!

    ...
    The kernel still uses the old table. The new table will be used at
    the next reboot or after you run partprobe(8) or kpartx(8)

    如果要删除一个磁盘所有分区,更简单的做法就是格式化磁盘

    1
    2
    3
    4
    [root@freeman /]# mkfs.ext4 /dev/sdb
    mke2fs 1.41.12 (17-May-2010)
    /dev/sdb is entire device, not just one partition!
    无论如何也要继续? (y,n) y