linux学习笔记(3)——磁盘分区、格式化、挂载

一、观察磁盘分区状态

1.1 lsblk 列出系统上的所有磁盘列表

app@kht_data:~$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    252:0    0   40G  0 disk
└─vda1 252:1    0   40G  0 part /
vdb    252:16   0  600G  0 disk
  • NAME:就是装置的文件名啰!会省略 /dev 等前导目录!
  • MAJ:MIN:其实核心认识的装置都是透过这两个代码来熟悉的!分别是主要:次要装置代码!
  • RM:是否为可卸除装置 (removable device),如光盘、USB 磁盘等
  • SIZE:当然就是容量啰!
  • RO:是否为只读装置的意思
  • TYPE:是磁盘 (disk)、分区槽 (partition) 还是只读存储器 (rom) 等输出
  • MOUTPOINT:就是前一章谈到的挂载点

1.2 blkid 列出装置的UUD等参数

app@kht_data:~$ blkid
/dev/vda1: UUID="1576ce59-66a7-40f7-b15e-db094a8696ed" TYPE="ext4" PARTUUID="49026b06-01"

1.3 parted列出磁盘的分区表类型与分区信息

app@kht_data:~$ parted /dev/vda print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos  # mbr分区
Disk Flags:
Number  Start   End     Size    Type     File system  Flags
 1      1049kB  42.9GB  42.9GB  primary  ext4         boot

二、磁盘分区

2.1 MBR分区使用fdiskGPT分区使用gdisk分区

root@kht_data:/home/app# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x4d2662eb.
Command (m for help): m
Help:
  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag
  Generic
   d   delete a partition # 删除分区信息
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition  # 添加分区表
   p   print the partition table # 打印分区表
   t   change a partition type
   v   verify the partition table
   i   print information about a partition
  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)
  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file
  Save & Exit
   w   write table to disk and exit # 写入分区表
   q   quit without saving changes  # 退出
  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table

2.2 查看硬盘情况 cat /proc/partitions

2.3 立即生效分区

  • 如果分区的硬盘分区正在使用,分区信息不会立即生效

  • 使用partprobe立即更新分区信息

    partprobe -s # [-s]打印分区信息
    

2.4 格式化分区

 mkfs.xfs /dev/vdb1 # 格式化分区 -f 强制格式化 -d 后台格式化 xfs格式
 mkfs.ext4 /dev/vdb1 # 格式化分区 ext4格式

三、挂载

  • 单一文件系统不应该被重复挂载在不同的挂载点
  • 单一目录不应该重复挂载多个文件系统
  • 要作为挂载点的目录,理论上应该是空目录才是

3.1 挂载目录

root@kht_data:$ blkid /dev/vdb1 # 查看分区信息
root@kht_data:$ /dev/vdb1: UUID="e9fbb83c-b7ee-425c-960d-64359e7593e9" TYPE="xfs" PARTUUID="72d47fff-01"
root@kht_data:$ mkdir -p /data  # 创建挂载目录
root@kht_data:$ mount UUID="e9fbb83c-b7ee-425c-960d-64359e7593e9" /data # 挂载目录
root@kht_data:$ df /data/  # 查看挂载目录信息
root@kht_data:$ df /data  #挂载成功
Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/vdb1      627790336 658608 627131728   1% /data

3.2 移除挂载

root@kht_data:$ umount [fn] /data # 移除挂载 -f 强制删除 -n 不更新/etc/mtab

3.3 开机挂载

3.3.1 注意事项

  • 根目录是/是必须挂载的,而且一定要先于其他mount point被挂载进来
  • 其他 mount point必须为已建立的目录,可任意指定,遵守目录架构规则
  • 所有的 mount point 在同一时间内,只能挂载一次
  • 所有partition 在同一时间内,只能挂载一次
  • 如若进行卸载,您必须先将工作目移到 mount point 之内

3.3.2 查看目录 /etc/fstab

# Device    Mount point      filesystem           parameters         dump    fsck
UUID=1576ce59-66a7-40f7-b15e-db094a8696ed /  ext4   errors=remount-ro        0       1
/dev/fd0         /media/floppy0      auto       rw,user,noauto,exec,utf8     0       0

3.3.3 装置文件参数解释

[装置/UUID] [挂载点] [文件系统] [文件系统参数] [dump] [fsck]

  1. 磁盘装置文件名/UUID/LABEL name
  • 文件系统或磁盘的装置文件名,如 /dev/vdb1 等
  • 文件系统的UUID名称,如 UUID=xxx
  • 文件系统的LABEL名称,例如 LABEL=xxx
  1. 挂载点[mount point]

    • 挂载目录
  2. 磁盘分区槽的文件系统

    • 在手动挂载时可以让系统自动测试挂载,但在这个文件当中我们必须要手动写入文件系统才行!
      包括 xfs, ext4, vfat, reiserfs, nfs
  3. 文件系统参数

    参数内容意义
    async/sync异步/同步设定磁盘是否以异步方式运作!预设为 async(效能较佳)
    auto/noauto 自动/非自动当下达 mount -a 时,此文件系统是否会被主动测试挂载。预设为 auto。
    rw/ro 可擦写/只读让该分区槽以可擦写或者是只读的型态挂载上来,如果你想要分享的数据是不给用 户随意变更的, 这里也能够设定为只读。则不论在此文件系统的文件是否设定 w 权限,都无法写入喔!
    exec/noexec 可执行/不可执行限制在此文件系统内是否可以进行『执行』的工作?如果是纯粹用来储存数据的目 录, 那么可以设定为 noexec 会比较安全。不过,这个参数也不能随便使用,因为 你不知道该目录下是否默认会有执行档。 举例来说,如果你将 noexec 设定在 /var ,当某些软件将一些执行文件放置于 /var 下时,那就会产生很大的问题喔! 因此,建议这个 noexec 最多仅设定于你自定义 或分享的一般数据目录。
    user/nouser 允许/不允许使用者挂载是否允许用户使用 mount 指令来挂载呢?一般而言,我们当然不希望一般身份的 user 能使用 mount 啰,因为太不安全了,因此这里应该要设定为 nouser 啰
    suid/nosuid 具有/不具有 suid 权限该文件系统是否允许 SUID 的存在?如果不是执行文件放置目录,也可以设定为 nosuid 来取消这个功能!
    defaults同时具有 rw, suid, dev, exec, auto, nouser, async 等参数。 基本上,预设情况使用 defaults 设定即可
  4. 能否被 dump 备份指令作用

  5. 是否以fsck检验扇区

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值