Linux数据盘(系统盘)分区

其实这教程也没更上时代了,fdisk这个命令有两个缺点:

1.无法分区单个2TB以上的分区

2.无法识别parted的GTP分区

但是学会fdisk命令的分区步骤,相信你对parted命令分区也会很快的掌握

 

教程中是使用自己虚拟机的,阿里云主机的话就是/dev/sdb改成/dev/vdb或者其他数据盘

一.分区

fdisk -l #查看分区状态。未分区的硬盘下的下方无分区信息

fdisk /dev/sdb #进行分区命令 

n #创建新分区 p #创建主分区,主分区只能创建3个,之后会创建e,扩展分区。扩展分区(一般不选择大小将剩余容量全作为扩展分区)创建后不能直接使用。 vdb1,vdb2,vdb3,vdb4,vdb5,vdb6 按顺序增加。则4为扩展分区(不能使用)。5,6属于扩展分区中的逻辑分区(可以使用,挂载之类) 逻辑分区在重启后才能使用 回车默认开始扇区 #选择开始扇区 +5G #选择创建大小,可以用 +[容量大小][单位,G,M,K]

p #查看现在的分区,现在还未正式分区 

w #保存写入分区

 

 

二.格式化新分区(制作文件系统)

mkfs.ext4 /dev/sdb1 #ext4为文件系统类型

 

 

三.挂载新分区

1.普通存储文件

mkdir /mydata #先创建挂载点 

mount /dev/sdb1 /mydata #将新分区sdb1挂载到/mydata目录上(先保证目录挂载点存在) 

df -h #查看目录挂载情况 #mount挂载后的分区重启需要再次重新挂载才能使用,要修改/etc/fstab配置文件才能开机自动挂载

 

2.创建swap交换分区文件

先按照相同方法再次创建一个大小为5G的分区

 

mkswap /dev/sdb2 #制作交换分区文件类型文件,交换分区文件不能被像普通分区一样挂载 

swapon /dev/sdb2 #启用交换分区文件 

free -h #查看交换分区大小

 

图上我自己装系统的时候已经分配2G的交换分区了,现在有分了5G,总共有7G

分区全都挂载了,但是现在一重启,那些自己分区又需要自己挂载。解决这个问题就需要让linux开机自动挂载,这个需要修改配置文件

 

四.在fstab中添加开机自动挂载信息

echo '/dev/sdb1 /mydata ext4 defaults 0 0' >> /etc/fstab 
echo '/dev/sdb2 swap swap defaults 0 0' >> /etc/fstab

#图上的ext3是错的,这个文件系统要和你创建的时候对应 #这个错误还害我在后面的重启进系统的紧急模式了... #在紧急模式可以本地登录系统,重新改了一下fstab就可以重新进系统了 #这边的defaults是有s的。每一个中间都有一个空格,这个之后要错一个就会紧急模式

 

这边也能看见安装系统时,我自己已经设置的交换分区,不过它使用UUID的方式挂载,这种方式也是最推荐的方式。使用UUID的好处:有些热插拔硬件(u盘等)根据不同的顺序接入,接入不同接口。在/dev/下的命名会不同,而UUID是设备唯一的。

 

最推荐在fstab中用UUID挂载

ls -l /dev/disk/by-uuid #查看分区的UUID,蓝色软连接的就是对应分区的UUID

 

可以看到之前安装系统自动挂载的分区的UUID就是最先的那块sda磁盘上的分区

现在我们来改一下我们刚才的自动挂载文件。(不要傻乎乎直接那我的UUID去,这个我说了是全局,可能全球唯一....)

echo 'UUID=11ee7348-2319-49d1-b1d9-313042ff9751 /mydata ext4 defaults 0 0' >> /etc/fstab
 
echo 'UUID=f5536295-657b-42b7-8ece-1ad6ef8b290f swap swap defaults 0 0' >> /etc/fstab

 

现在重启看下,分区是不是都自己挂载了!

 

五、最后再来说一下fstab文件吧

 

这边字段定义是这样的

<fs_spec> <fs_file> <fs_vfstype> <fs_mntops> <fs_freq> <fs_passno>

#每个字段之间必须要有一个空格,特别想详细的可以 man fstab 5 自己去看一下 

#第一字段:需要挂载的分区或存储设备 

#第二字段:挂载点 

#第三字段:挂载的文件系统类型,这个类型必须和你mkfs时候选择的类型相同 

#第四字段:挂载时的额外参数,defaults默认的是rw, suid, dev, exec, auto, nouser, async这些 auto - 在启动时或键入了 mount -a 命令时自动挂载。 noauto - 只在你的命令下被挂载。 exec - 允许执行此分区的二进制文件。 noexec - 不允许执行此文件系统上的二进制文件。 ro - 以只读模式挂载文件系统。 rw - 以读写模式挂载文件系统。 user - 允许任意用户挂载此文件系统,若无显示定义,隐含启用 noexec, nosuid, nodev 参数。 users - 允许所有 users 组中的用户挂载文件系统. nouser - 只能被 root 挂载。 owner - 允许设备所有者挂载. sync - I/O 同步进行。 async - I/O 异步进行。 dev - 解析文件系统上的块特殊设备。 nodev - 不解析文件系统上的块特殊设备。 suid - 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序时临时提升权限。 nosuid - 禁止 suid 操作和设定 sgid 位。 noatime - 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数)。 nodiratime - 不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数)。 relatime - 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime 相似,但不会打断如 mutt 或其它程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见 atime 参数)。 flush - vfat 的选项,更频繁的刷新数据,复制对话框或进度条在全部数据都写入后才消失。 defaults - 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw, suid, dev, exec, auto, nouser, async. 

#第五字段:dump工具时候进行备份。0表示忽略,1表示备份 这个dump是需要安装的,云上有快照基本上不会使用,所以建议0,并且备份也会消耗磁盘性能 

#第六字段:是否进行文件系统检查和优先级。0表示不会检查,一般根目录为1,其余需要检查的为2

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章