linux 磁盘操作

一、观察磁盘分区状态
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分区使用fdisk,GPT分区使用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]

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

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

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

参数    内容意义
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 设定即可
能否被 dump 备份指令作用

是否以fsck检验扇区

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值