Linux|磁盘管理-基本分区

磁盘管理-基本分区 理论介绍 磁盘分类

  • 机械硬盘(HDD):传统硬盘,为电脑主要的存储媒介之一。由一个或者多个铝制或者玻璃制成的磁性碟片,磁头,转轴,控制电机,磁头控制器,数据转换器,接口和缓存等几个部分组成。工作时,磁头悬浮在高速旋转的碟片上进行读写数据。
Linux|磁盘管理-基本分区
文章图片

  • 固态硬盘:由多个闪存芯片加主控以及缓存组成的阵列式存储,属于以固态电子存储芯片阵列制成的硬盘。相对机械硬盘,读取速度更快,寻道时间更小,可加快操作系统启动速度和软件启动速度。,价格也更贵
硬盘接口类型
个人PC机
  • IDE:并口
    Linux|磁盘管理-基本分区
    文章图片

  • SATA:IDE串行化,串口(一代二代三代)
Linux|磁盘管理-基本分区
文章图片

服务器
  • SCSI:并口
Linux|磁盘管理-基本分区
文章图片

  • SAS:SCSI串行化 ,串口
Linux|磁盘管理-基本分区
文章图片

磁盘设备的命名
/dev/sda2
  • /dev/ 设备文件目录
  • s 硬件接口类型
  • d disk硬盘
  • a 第一块硬盘(b 第二块;c 第三块;以此类推)
  • 2 第2个分区
硬件设备 文件名称 备注
IDE设备 /dev/hd[a-d] centos6+中IDE变为/dev/sd[a-d]
SCSI/SATA/U盘 /dev/sd[a-p] 大部分为该类型
软驱 /dev/fd[0-1]
打印机 /dev/lp[0-15]
光驱 /dev/cdrom
鼠标 /dev/mouse
磁带机 /dev/st0或/dev/ht0
扩展:HP(惠普)服务器硬盘
  • /dev/cciss/c0d0
  • /dev/cciss/c0d0p1 c0第一个控制器, d0第一块磁盘, p1分区1
  • /dev/cciss/c0d0p2 c0第一个控制器, d0第一块磁盘, p2分区2
分区方式
MBR&GPT比较
Linux|磁盘管理-基本分区
文章图片

分区方式 MBR GPT
分区大小 <2TB >2TB (<2TB也可以分)
分区工具 fdisk gdisk
分区方式 三个主分区+一个扩展分区(共四个主分区);
一个扩展分区可分为若干个逻辑分区
128个主分区
从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失
扩展:http://www.eassos.cn/jiao-cheng/ying-pan/mbr-vs-gpt.php
常用查看命令 lsblk
  • 列出所有可用块设备,显示依赖关系
[root@server1 ~]# lsblk NAMEMAJ:MIN RMSIZE RO TYPE MOUNTPOINT sda8:0020G0 disk ├─sda18:101G0 part /boot └─sda28:2019G0 part ├─centos-root 253:0017G0 lvm/ └─centos-swap 253:102G0 lvm[SWAP] sdb8:1605G0 disk sr011:01973M0 rom

df -Th
  • 列出文件系统的磁盘占用情况,也就是说,只显示正在挂载的设备
[root@server1 ~]# df -Th 文件系统类型容量已用可用 已用% 挂载点 devtmpfsdevtmpfs899M0899M0% /dev tmpfstmpfs910M0910M0% /dev/shm tmpfstmpfs910M9.6M901M2% /run tmpfstmpfs910M0910M0% /sys/fs/cgroup /dev/mapper/centos-root xfs17G1.9G16G11% / /dev/sda1xfs1014M194M821M20% /boot tmpfstmpfs182M0182M0% /run/user/0

fdisk -l
  • 列出磁盘分区情况
[root@server1 ~]# fdisk -l磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000a51a3设备 BootStartEndBlocksIdSystem /dev/sda1*20482099199104857683Linux /dev/sda2209920041943039199219208eLinux LVM磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节

du -sh
  • 查看磁盘空间占用情况
[root@server1 ~]# du -sh /* 0 /bin 162M /boot 0 /dev 36M /etc 1.3M /home 0 /lib 0 /lib64 0 /media 0 /mnt 0 /opt du: 无法访问"/proc/8508/task/8508/fd/4": 没有那个文件或目录 du: 无法访问"/proc/8508/task/8508/fdinfo/4": 没有那个文件或目录 du: 无法访问"/proc/8508/fd/4": 没有那个文件或目录 du: 无法访问"/proc/8508/fdinfo/4": 没有那个文件或目录 0 /proc 36K /root 9.6M /run 0 /sbin 0 /srv 0 /sys 0 /tmp 1.4G /usr 361M /var

free -h
  • 查看系统内存情况,常用于查看swap分区
[root@server1 ~]# free -h totalusedfreesharedbuff/cacheavailable Mem:1.8G153M1.4G9.5M256M1.4G Swap:2.0G0B2.0G

blkid
  • 查看具体设备的UUID和文件系统
[root@server1 ~]# blkid /dev/sda1 /dev/sda1: UUID="1eb189c6-19c3-498d-ad51-06531bf2f1e2" TYPE="xfs"

磁盘划分流程
  • 新建分区
  • 刷新分区表
  • 格式化分区
  • 挂载
新建分区
fdisk
[root@server1 ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。Device does not contain a recognized partition table 使用磁盘标识符 0xe6d1d525 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):m 命令操作 atoggle a bootable flag bedit bsd disklabel ctoggle the dos compatibility flag ddelete a partition#删除一个分区 gcreate a new empty GPT partition table Gcreate an IRIX (SGI) partition table llist known partition types mprint this menu#打印本帮助菜单 nadd a new partition#建立一个新的分区 ocreate a new empty DOS partition table pprint the partition table#打印分区表 qquit without saving changes#退出不保存设置 screate a new empty Sun disklabel tchange a partition's system id uchange display/entry units vverify the partition table wwrite table to disk and exit#保存分区表 xextra functionality (experts only) -------------------------------------------------------------- ##################用法################## 命令(输入 m 获取帮助):n #创建新分区 Partition type: pprimary (0 primary, 0 extended, 4 free) eextended Select (default p):#回车,默认p:主分区 Using default response p 分区号 (1-4,默认 1): #回车 起始 扇区 (2048-10485759,默认为 2048): #回车,一般选择默认即可,不建议手动设置 将使用默认值 2048 Last 扇区, +扇区 or +size{ K,M,G} (2048-10485759,默认为 10485759):+1G #设置分区大小 分区 1 已设置为 Linux 类型,大小设为 1 GiB命令(输入 m 获取帮助):n #创建新分区 Partition type: pprimary (1 primary, 0 extended, 3 free) eextended Select (default p): e #e:扩展分区 分区号 (2-4,默认 2): #回车 起始 扇区 (2099200-10485759,默认为 2099200):#回车 将使用默认值 2099200 Last 扇区, +扇区 or +size{ K,M,G} (2099200-10485759,默认为 10485759):+4G #设置分区大小 将使用默认值 10485759 分区 2 已设置为 Extended 类型,大小设为 4 GiB命令(输入 m 获取帮助):n #创建新分区 Partition type: pprimary (1 primary, 1 extended, 2 free) llogical (numbered from 5) Select (default p): l #:逻辑分区 添加逻辑分区 5 起始 扇区 (2101248-10485759,默认为 2101248):#回车 将使用默认值 2101248 Last 扇区, +扇区 or +size{ K,M,G} (2101248-10485759,默认为 10485759):+2G 分区 5 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):P #打印分区表磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0xe6d1d525设备 BootStartEndBlocksIdSystem /dev/sdb120482099199104857683Linux /dev/sdb220992001048575941932805Extended /dev/sdb521012486295551209715283Linux命令(输入 m 获取帮助):w #保存退出 The partition table has been altered!Calling ioctl() to re-read partition table. 正在同步磁盘。 [root@server1 ~]# lsblk NAMEMAJ:MIN RMSIZE RO TYPE MOUNTPOINT sda8:0020G0 disk ├─sda18:101G0 part /boot └─sda28:2019G0 part ├─centos-root 253:0017G0 lvm/ └─centos-swap 253:102G0 lvm[SWAP] sdb8:1605G0 disk ├─sdb18:1701G0 part ├─sdb28:1801K0 part └─sdb58:2102G0 part sr011:01973M0 rom

注意事项:
  1. 最多只能分4个主分区,主分区编号1-4
  2. 逻辑分区大小总和不能超过扩展分区大小,逻辑分区分区编号从5开始
  3. 如果删除扩展分区,则逻辑分区也被删除
  4. 扩展分区的分区编号(1-4)
  5. 扩展分区不能进行格式化,挂载使用。只有1k,用来记录逻辑分区的信息
  6. 创建分区顺序1-2-3-4,删除分区顺序4-3-2-1
  7. 已经有数据的磁盘,不建议再进行磁盘划分
gdisk(扩展)
  • VMware新建一个虚拟磁盘
[root@server1 ~]# lsblk NAMEMAJ:MIN RMSIZE RO TYPE MOUNTPOINT sda8:0020G0 disk ├─sda18:101G0 part /boot └─sda28:2019G0 part ├─centos-root 253:0017G0 lvm/ └─centos-swap 253:102G0 lvm[SWAP] sdb8:1605G0 disk ├─sdb18:1702G0 part └─sdb28:1802G0 part [SWAP] sdc8:3205G0 disk sr011:01973M0 rom [root@server1 ~]# gdisk /dev/sdc GPT fdisk (gdisk) version 0.8.10Partition table scan: MBR: not present BSD: not present APM: not present GPT: not presentCreating new GPT entries.Command (? for help): ? 获取帮助信息 b back up GPT data to a file c change a partition's name d delete a partition 删除分区 i show detailed information on a partition l list known partition types n add a new partition 创建新分区 o create a new empty GUID partition table (GPT) p print the partition table 打印分区表 q quit without saving changes 不保存退出 r recovery and transformation options (experts only) s sort partitions t change a partition's type code v verify disk w write table to disk and exit 保存分区表 x extra functionality (experts only) ? print this menuCommand (? for help): n Partition number (1-128, default 1): First sector (34-10485726, default = 2048) or { +-}size{ KMGTP}: Last sector (2048-10485726, default = 10485726) or { +-}size{ KMGTP}: +2G Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): L 0700 Microsoft basic data0c01 Microsoft reserved2700 Windows RE 3000 ONIE boot3001 ONIE config4100 PowerPC PReP boot 4200 Windows LDM data4201 Windows LDM metadata7501 IBM GPFS 7f00 ChromeOS kernel7f01 ChromeOS root7f02 ChromeOS reserved 8200 Linux swap8300 Linux filesystem8301 Linux reserved 8302 Linux /home8400 Intel Rapid Start8e00 Linux LVM a500 FreeBSD disklabela501 FreeBSD boota502 FreeBSD swap a503 FreeBSD UFSa504 FreeBSD ZFSa505 FreeBSD Vinum/RAID a580 Midnight BSD dataa581 Midnight BSD boota582 Midnight BSD swap a583 Midnight BSD UFSa584 Midnight BSD ZFSa585 Midnight BSD Vinum a800 Apple UFSa901 NetBSD swapa902 NetBSD FFS a903 NetBSD LFSa904 NetBSD concatenateda905 NetBSD encrypted a906 NetBSD RAIDab00 Apple bootaf00 Apple HFS/HFS+ af01 Apple RAIDaf02 Apple RAID offlineaf03 Apple label af04 AppleTV recoveryaf05 Apple Core Storagebe00 Solaris boot bf00 Solaris rootbf01 Solaris /usr & Mac Zbf02 Solaris swap bf03 Solaris backupbf04 Solaris /varbf05 Solaris /home bf06 Solaris alternate sebf07 Solaris Reserved 1bf08 Solaris Reserved 2 bf09 Solaris Reserved 3bf0a Solaris Reserved 4bf0b Solaris Reserved 5 c001 HP-UX datac002 HP-UX serviceea00 Freedesktop $BOOT eb00 Haiku BFSed00 Sony system partitioed01 Lenovo system partit Press the key to see more codes: ef00 EFI Systemef01 MBR partition schemeef02 BIOS boot partition fb00 VMWare VMFSfb01 VMWare reservedfc00 VMWare kcore crash p fd00 Linux RAID Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem'Command (? for help): n Partition number (2-128, default 2): First sector (34-10485726, default = 4196352) or { +-}size{ KMGTP}: Last sector (4196352-10485726, default = 10485726) or { +-}size{ KMGTP}: +1G Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): 8200 Changed type of partition to 'Linux swap'Command (? for help): wFinal checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!!Do you want to proceed? (Y/N): Your option? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/sdc. The operation has completed successfully. [root@server1 ~]# lsblk NAMEMAJ:MIN RMSIZE RO TYPE MOUNTPOINT sda8:0020G0 disk ├─sda18:101G0 part /boot └─sda28:2019G0 part ├─centos-root 253:0017G0 lvm/ └─centos-swap 253:102G0 lvm[SWAP] sdb8:1605G0 disk ├─sdb18:1702G0 part └─sdb28:1802G0 part [SWAP] sdc8:3205G0 disk ├─sdc18:3302G0 part └─sdc28:3401G0 part sr011:01973M0 rom


partprobe刷新分区表
[root@server1 ~]# partprobe#刷新所有分区表 Warning: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。 [root@server1 ~]# partprobe /dev/sdb#刷新指定分区表

注意事项:
1.如果刷新不成功,可以尝试重启操作系统
mkfs格式化分区
常见文件系统
  • ext3
    是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据
    的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分
    之百地保证资料不会丢失。它会把整个磁盘的每个写入动作的细节都预先记录下来,以便
    在发生异常宕机后能回溯追踪到被中断的部分,然后尝试进行修复
  • ext4
    Ext3的改进版本,作为RHEL 6系统中的默认文件管理系统,它支持的存储容量高达
    1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4文件系统能够批
    量分配block块,从而极大地提高了读写效率
  • XFS
    是一种高性能的日志文件系统,而且是RHEL 7中默认的文件管理系统,它的优势在发生意
    外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费
    极低的计算和存储性能。并且它最大可支持的存储容量为18EB,这几乎满足了所有需

格式化为ext4文件系统
[root@server1 ~]# mkfs.ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) 文件系统标签= OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (8192 blocks): 完成 Writing superblocks and filesystem accounting information: 完成

挂载
mount临时挂载
创建挂载目录 [root@server1 ~]# mkdir /mnt/mount_sdb1挂载 [root@server1 ~]# mount /dev/sdb1 /mnt/mount_sdb1/ [root@server1 ~]# mount -o remount,ro,sync /mnt/mount_sdb1/ #选项说明 -o:挂载选项 ro,sync,rw,remount -t:文件系统类型 mount -t nfs=mount.nfs(NFS) mount.nfs 192.168.226.10:/share /nfs_share mount -t cifs=mount.cifs(SAMBA) mount.cifs -o user=user01,password=1 //192.168.226.10/samba_share /samba_share查看挂载选项信息 [root@server1 ~]# mount /dev/sdb1 on /mnt/mount_sdb1 type ext4 (rw,relatime,data=https://www.it610.com/article/ordered)解挂 [root@server1 ~]# umount /mnt/mount_sdb1

注意事项:
1.挂载点为空目录
2.多个设备不能挂载到同一个目录中
3.挂载目录的权限,不取决于挂载点原有的权限,而取决于被挂载文件
4.mount临时挂载,重启系统失效
/etc/fstab永久挂载 永久挂载原因:
启动操作系统后,系统会进行初始化。初始化文件/sbin/init会自动调用/etc/fstab文件。将挂载信息写入/etc/fstab文件,每次开机都会读取该文件,从而实现永久挂载
[root@server1 mount_sdb1]# vim /etc/fstab 挂载的设备(文件名或者UUID)+挂载点+文件系统类型+挂载选型+0(0表示不需要dump备份,1表示每天备份)+0(0是不要 fsck 检验扇区,1表示要且最先检验) async/sync异步/同步: auto/noauto自动/非自动: rw/ro读写/只读: exec/noexec可被执行/不可被执行: remount重新挂在一个已经挂载的文件系统,常用于修改挂载参数 user/nouser允许/不允许其他普通用户挂载: suid/nosuid具有/不具有suid权限:该文件系统是否允许SUID的存在。 usrquota这个是在启动文件系统的时候,让其支持磁盘配额,这个是针对用户的。 grpquota支持用户组的磁盘配额。 .... defaults 同时具有rw, dev, exec, acl, async,nouser等参数。------------------------------------------------------------ [root@server1 mount_sdb1]# vim /etc/fstab /dev/mapper/centos-root /xfsdefaults0 0 UUID=1eb189c6-19c3-498d-ad51-06531bf2f1e2 /bootxfsdefaults0 0 /dev/mapper/centos-swap swapswapdefaults0 0 //192.168.226.10/samba_share /smb_share cifs user=user01,password=1 0 0 192.168.226.10:/share /nfs_share nfs ro 0 0 /dev/sdb1 /mnt/mount_sdb1 ext4 defaults 0 0重新读取/etc/fstab文件内容 [root@server1 mount_sdb1]# mount -a [root@server1 mount_sdb1]# lsblk NAMEMAJ:MIN RMSIZE RO TYPE MOUNTPOINT sda8:0020G0 disk ├─sda18:101G0 part /boot └─sda28:2019G0 part ├─centos-root 253:0017G0 lvm/ └─centos-swap 253:102G0 lvm[SWAP] sdb8:1605G0 disk ├─sdb18:1701G0 part /mnt/mount_sdb1 ├─sdb28:1801K0 part └─sdb58:2102G0 part sr011:01973M0 rom

autofs服务灵活挂载
访问时会自动挂载,一定时间不访问会自动卸载,依赖于后台的autofs服务
  • 挂载本地资源
安装autofs软件 [root@server1 ~]# yum install -y autofs修改配置文件 [root@server1 ~]# vim /etc/auto.master /mnt/etc/auto.sdb5 -t 3 #定义一级挂载点/mnt和子配置文件/etc/auto.sdb5以及超时卸载时间 [root@server1 ~]# vim /etc/auto.sdb5 mount_sdb5-fstype=ext4,ro :/dev/sdb5 #定义二级挂载点/mnt/mount_sdb5 文件类型 挂载选项 被挂载的设备启动服务 [root@server1 ~]# systemctl start autofs.service [root@server1 ~]# systemctl enable autofs.service 测试 [root@server1 ~]# ls /mnt/mount_sdb1 ls: 无法访问/mnt/mount_sdb1: 没有那个文件或目录

报错:无法访问/mnt/mount_sdb1: 没有那个文件或目录。无法挂载
原因:设备未格式化
【Linux|磁盘管理-基本分区】解决 :mkfs.ext4 /dev/sdb1
[root@server1 ~]# mkfs.ext4 /dev/sdb1 [root@server1 ~]# systemctl restart autofs [root@server1 ~]# cd /mnt [root@server1 mnt]# ls mount_sdb1 lost+found [root@server1 mnt]# lsblk NAMEMAJ:MIN RMSIZE RO TYPE MOUNTPOINT sda8:0020G0 disk ├─sda18:101G0 part /boot └─sda28:2019G0 part ├─centos-root 253:0017G0 lvm/ └─centos-swap 253:102G0 lvm[SWAP] sdb8:1605G0 disk └─sdb18:1702G0 part /mnt/mount_sdb1 sr011:01973M0 rom

  • 挂载网络资源(NFS)
搭建nfs服务端 [root@server2 ~]# yum install -y rpcbind.x86_64 [root@server2 ~]# yum install -y nfs-utils.x86_64 [root@server2 ~]# mkdir /share/nfs -p [root@server2 ~]# touch /share/nfs/file1 [root@server2 ~]# echo '/share/nfs 192.168.226.10(ro)' >> /etc/exports [root@server2 ~]# cat /etc/exports /share/nfs 192.168.226.10(ro) [root@server2 ~]# systemctl start rpcbind.service [root@server2 ~]# systemctl start nfs客户端autofs挂载 [root@server1 ~]# yum install -y nfs-utils [root@server1 ~]# mkdir /share [root@server1 ~]# echo '/share /etc/auto.nfs' >> /etc/auto.master [root@server1 ~]# touch /etc/auto.nfs [root@server1 ~]#echo 'auto_nfs -nfs,ro 192.168.226.20:/share/nfs' >> /etc/auto.nfs [root@server1 ~]# systemctl restart autofs测试 [root@server1 ~]# ls /share/auto_nfs file1 [root@server1 ~]# df -Th 文件系统类型容量已用可用 已用% 挂载点 devtmpfsdevtmpfs899M0899M0% /dev tmpfstmpfs910M0910M0% /dev/shm tmpfstmpfs910M9.6M901M2% /run tmpfstmpfs910M0910M0% /sys/fs/cgroup /dev/mapper/centos-rootxfs17G1.9G16G11% / /dev/sda1xfs1014M194M821M20% /boot tmpfstmpfs182M0182M0% /run/user/0 192.168.226.20:/share/nfs nfs417G1.9G16G11% /share/auto_nfs

    推荐阅读