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检验扇区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值