这是我参与 8 月更文挑战的第 6 天,活动详情查看: 8月更文挑战前端
一名致力于在技术道路上的终身学习者、实践者、分享者,一位忙起来又偶尔偷懒的原创博主,一个偶尔无聊又偶尔幽默的少年。node
欢迎各位掘友们微信搜索「杰哥的IT之旅」关注!数据库
原文连接:Linux磁盘和文件系统管理vim
挂接好新的硬盘设备并启动主机后,Linux系统会自动检测并加载该硬盘,无须额外安装驱动。执行“fdisk -l”命令便可查看,确认新增硬盘的设备名称和位置。做用:列出当前系统中全部硬盘设备及其分区的信息。windows
[root@localhost ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x000b2b5d
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 102400 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 13 279 2134016 82 Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3 279 2611 18734080 83 Linux
复制代码
上述输出信息中包含了各硬盘的总体状况和分区状况,其中“/dev/sda”为原有的硬盘设备,对于已有的分区,将经过列表的方式输出如下信息;后端
右键单击上图右下角某块磁盘,“设置”按钮。弹出下图对话框,“添加”按钮。微信
选择相应的硬件类型。点击“下一步”按钮。markdown
选择磁盘类型,默认为SCSI。运维
选择最大磁盘大小的空间,并选择将虚拟磁盘存储为单个文件,点击“下一步”按钮。添加完成后,重启设备。编辑器
重启后执行“fdisk -l”命令,便可查看是否识别新的硬盘。
[root@localhost ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x000b2b5d
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 102400 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 13 279 2134016 82 Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3 279 2611 18734080 83 Linux
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: 0x00000000
复制代码
在硬盘设备中建立、删除、更改分区等操做一样经过fdisk命令进行,只要使用硬盘的设备文件做为参数。例如,执行“fdisk /dev/sdb”命令,便可进入到交互式的分区管理界面中。
在该操做界面中的“Command (m for help):”提示符后,输入特定的分区操做指令,能够完成各项分区管理任务。输入“m”指令后,能够查看各类操做指令的帮助信息。
fdisk 分区工具的交互式操做界面
[root@localhost ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x97fe0724.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
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):
复制代码
关于fdisk交互式操做指令的帮助信息
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help):
复制代码
使用“p”指令能够列出详细的分区状况,信息显示的格式与执行“fdisk -l”命令相同,硬盘中还没有创建分区时,输出的列表信息为空。
Command (m for help): 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: 0x97fe0724
Device Boot Start End Blocks Id System
Command (m for help):
复制代码
使用“n”指令能够进行建立分区的操做,包括主分区和扩展分区。根据提示继续输入“p”选择建立主分区,输入“e”选择建立扩展分区。以后依次选择分区序号,起始位置,结束位置或分区大小便可完成新分区的建立。
选择分区好时,主分区和扩展分区的序号只能为1-4.分区起始位置通常由fdisk默认识别,结束位置或大小可使用"+sizeM"或"+sizeG"的形式。
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): +5G
Value out of range.
复制代码
Command (m for help): 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: 0x97fe0724
Device Boot Start End Blocks Id System
/dev/sdb1 1 652 5237158+ 83 Linux
复制代码
使用“d”指令能够删除指定的分区,根据提示继续输入须要删除的分区序号,在执行前删除分区时必定要慎重,应首先使用p指令查看分区的序号,确认无误后再进行删除。
须要注意的是,若扩展分区被删除,则扩展分区之下的逻辑分区也将被删除。所以建议从最后一个分区开始进行删除,以避免fdisk识别的分区序号发生混乱。
在fdisk分区工具中,新建的分区默认使用的文件系统类型为EXT4,通常不须要更改,可是若新建的分区须要用做swap交换分区或其余类型的文件系统时,则须要对分区类型进行变动以保持一致性,从而避免在管理分区时产生混乱。
使用“t”指令能够变动分区的ID号,操做时须要依次指定目标分区序号,新的系统ID号。不一样类型的文件系统对应不一样的ID号,以16进制数表示,在fdisk交互环境中输入“l”指令进行列表查看,最经常使用的EXT四、swap文件系统的ID号分别为8三、82,而用于windows中的NTFS文件系统的ID号通常为86。
完成对硬盘的分区操做之后,能够执行w或q指令退出fdisk分区工具。其中“w”将保存分区操做,而“q”指令将不会保存对硬盘所作的分区操做。
对已包含数据的硬盘进行分区时,必定要作好数据备份,保存以前要确保操做无误,以避免发生数据损坏,若没法肯定本次分区操做是否正确,建议使用“q”指令不保存退出。
变动磁盘的分区设置之后,建议最好将系统重启一次,或者执行“partprobe”命令使操做系统检测新的分区表状况。在某些Linux操做系统中,若不进行这些操做,可能会致使格式化分区时对硬盘中已有数据的损坏,严重者甚至引发系统崩溃。执行 partprobe命令检测/dev/sdb磁盘中的分区变化。
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# partprobe /dev/sdb
复制代码
mkfs命令是一个前端工具,能够自动加载不一样的程序来建立各类类型的分区,然后端包括有多个与mkfs命令相关的工具程序,位于/sbin目录中。
[root@localhost ~]# ls /sbin/mkfs*
/sbin/mkfs /sbin/mkfs.cramfs /sbin/mkfs.ext2 /sbin/mkfs.ext3 /sbin/mkfs.ext4 /sbin/mkfs.ext4dev /sbin/mkfs.msdos /sbin/mkfs.vfat
复制代码
基本的命令格式
mkfs -t 文件系统类型 分区设备
复制代码
使用mkswap命令能够在指定的分区上建立交换文件系统,目标分区先经过fdisk工具将ID号设为82。
对于新增长的交换分区,须要使用swapon命令进行启用,反之使用swapoff命令能够停用指定的交换分区。
[root@localhost ~]# fdisk -l /dev/sda
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x000b2b5d
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 102400 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 13 279 2134016 82 Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3 279 2611 18734080 83 Linux
复制代码
mount命令的基本使用格式
mount [-t 文件系统类型] 存储设备 挂载点
复制代码
光盘对应的设备文件一般使用"/dev/cdrom",其实这是一个连接文件,连接到实际的光盘设备"/dev/sr0"。使用这两个名称均可以表示光盘设备。因为光盘是只读的存储介质,所以在挂载时系统会出现"mounting read-only"的提示信息。
使用不带任何参数或选项的mount命令时,将显示出当前系统中已挂载的各个分区的相关信息,最近挂载的文件系统将显示在最后边。
[root@localhost ~]# mount
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
gvfs-fuse-daemon on /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev)
/dev/sr0 on /media/CentOS_6.5_Final type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=0,gid=0,iocharset=utf8,mode=0400,dmode=0500)
[root@localhost ~]#
复制代码
须要卸载文件系统时,使用的命令为umount,使用挂载点目录或对应设备的文件名做为卸载参数,Linux系统中,因为同一个设备能够被挂载到多个目录下,因此通常建议经过挂载点的目录位置来进行卸载。
[root@localhost ~]# umount /dev/cdrom
复制代码
系统中的/etc/fstab文件能够视为mount命令的配置文件,其中存储了文件系统的静态挂载数据。Linux系统在每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统。默认的fatab文件中包括了根分区、/boot分区、交换分区及proc、tmpfs等伪文件系统的挂载配置。
[root@localhost ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Jun 4 06:06:05 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=793c943d-a96e-453d-8249-a8eb9ad1ec59 / ext4 defaults 1 1
UUID=758a54e1-de64-4e02-a4a9-f09f4c28fdfa /boot ext4 defaults 1 2
UUID=0535a0f7-88f2-490c-b26f-94a27e45804d swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
[root@localhost ~]#
复制代码
在"/etc/fstab"文件中,每一行记录对应一个分区或设备的挂载配置信息,各部分的含义以下。
第1字段:设备名或设备卷标名。
第2字段:文件系统的挂载点目录的位置。
第3字段:文件系统类型,如ext四、swap等。
第4字段:挂载参数,mount命令"-o"选项后可以使用的参数。
(defaults、rw、ro、noexec分别表示默认参数、可写、只读、禁用执行程序)
第6字段:该数字用于决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查,2表示其次检查,对于根分区应设为1,其余分区设为2。
不带选项及参数的mount命令能够显示分区的挂载状况,了解系统中已挂载各文件系统的磁盘使用状况可使用df命令。
df命令使用文件或者设备做为命令参数,经常使用的选项为"-h","-T"。"-h"选项能够显示更易读的容量单位,而"-T"选项用于显示对应文件系统的类型。
[root@localhost ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 18G 5.0G 12G 30% /
tmpfs tmpfs 495M 224K 495M 1% /dev/shm
/dev/sda1 ext4 97M 30M 63M 32% /boot
[root@localhost ~]#
复制代码
Linux环境下安装及管理程序(软件包封装、RPM命令、源代码编译安装的基本过程)
本文完。
原创不易,若是你以为这篇文章对你有点用的话,麻烦你为本文点个赞、评论或转发一下,由于这将是我输出更多优质文章的动力,感谢!
对了,掘友们记得给我点个免费的关注哟!防止你迷路下次就找不到我了。
咱们下期再见!