代码改变世界

linux:磁盘的分割、检验、格式化与挂载

2016-05-09 18:43  ZengGW  阅读(4326)  评论(0编辑  收藏  举报

新增一颗磁碟:

  1.对磁碟进行分割,以建立可用的partition

  2.对该分割槽partition进行格式化(format),以建立系统可用的filesystem

  3.若要仔细点,可对刚刚建立的filesystem进行检验

  4.在linux上面,需要建立挂载点(亦即是目录)将它挂载上去

一、观察磁碟分割状态(lsblk、blkid、parted)

  lsblk(list block device):列出系统上的所以磁碟列表

  

 

  blkid:获取UUID

  

  补充(打错字了):这样识别码就可以拿来作为挂载或者使用这个装置档案系统之用了

  

  parted:列出磁碟的分割表类型和分割资讯

  

  

二、磁盘分割(gdisk/fdisk)

  gdisk:GPT分割格式使用(以下都试使用gdisk来分割的)

  fdisk:MBR分割格式使用

  注意:gdisk /dev/sda不能写错gdisk /dev/sda1,因为partition是针对整个磁碟装置的,不是针对某个partition的

  

  比较重要的指令:

    d:删除一个分割槽

    n:添加一个新的分割槽

    q:退出,不保存修改

    w:保存修改后离开

    p:打印分区表(里面有目前磁碟的状态)

  

  从上图可以看出:

    a.该磁碟还可以进行额外的分割,因为它的最大磁区为83886080,但是它只用到65026047

    b.每一个分割槽的start磁区都是上一个分割槽的结束磁区加1

  强烈建议:你可以使用gdisk或者fdisk在磁碟上面随便怎么弄,但是千万不要按下【w】,千万记得按下【q】,此外不要在GPT上面使用fdisk或者在MBR上面使用gdisk,因为指令的错误可能导致磁盘的分割记录全部死光光;

  

  使用gdisk新增分割槽(分割过程):

  

  分割槽的档案格式查询:linux的基本就是8200(swap)/8300/8e00三种格式,windows的几乎都用0700

  

  

  当确保分割槽正确的情况下,按下【w】:

    

  此时的磁碟还在使用当中,不能立即载入新的磁盘分割资讯,有两种方式解决:

    1.关机重启

    2.使用partprobe这个命令来处理

  

  partprobe:更新linux核心的分割表资讯

  

 

  磁碟格式化(mkfs.xfs):(注意【重点】:当你在系统中新分割了两个partition后,分别将它们格式化了,然后把他们删除后,你再去重新创建新的分区,这时候你会发现,分割的新的partition直接就格式化好了,刚好就是刚才删除的那两个格式化了的分区的filesystem,当你分割了两个分割槽之后,第三个开始才没有被格式化)

  

    

 举例:xfs可以使用多个资料流来读写系统,以增加速度,因此那个agcount可以和CPU的核心数来做搭配

  

  跳过:XFS档案系统for RAID效能优化(Optional)

  其他的档案系统的mkfs

  

 

  档案系统的检验(不经常用,也不希望去用):

    注意:通常只有你是root身份,且你的档案系统有问题的时候才使用这个命令,否则正常情况下使用该命令,可能会造成对系统的危害

       执行xfs_repair/fsck.ext4时被检查的分区务必不可挂载到系统上,既是需要在卸载的状态下

    语法:xfs_repair [-fnd] 裝置名称

    -f :後面的裝置其實是個檔案而不是實體裝置

    -n :單純檢查並不修改檔案系統的任何資料 (檢查而已)

    -d :通常用在單人維護模式底下,針對根目錄 (/) 進行檢查與修復的動作!很危險!不要隨便使用

    

    

    fsck.ext4:处理ext4档案系统

    

 

档案系统的挂载与卸载:

  单一档案系统不应该重复挂载在不同的挂载点(目录)中

  单一目录不应该重复挂载多个档案系统

  要作为挂载点的目录,理论上应该是空目录才对(如果原目录不为空,那么挂载了档案系统之后,该目录下的东西会暂时的消失;直到你把这个档案系统卸载之后,该目录原来的东西又会出现)

  挂载的指令mount:

    /etc/filesystem:系统指定的测试挂载档案系统类型的优先顺序

    /proc/filesystem:linux系统已经载入的档案系统类型

    /lib/modules/3.10.0-327.el7.x86_64/kernel/fs/:linux系统支援的档案系统的驱动程序

磁碟与档案系统参数修订:

  档案如何代表该装置呢?根据主要(major)和次要(minor )代码,linux的系统核心就可以识别对应的装置了

  

  如吐所示:其中8为主要代码,代表着/dev/sda,而0-5为次要代码,一下是常见的一些主要次要代码:

   

  mknod(某些时候需要手动处理装置档案):

  

  xfs_admin 修改xfs档案系统的LABEL NAME 和UUID;

  

  疑问:因为mount后面接着档名也可以挂载的,为什么要需要通过uuidgen来生成新的一串uuid来挂载呢?

  解:你没有办法指定这个磁碟在所以的linux中档名一定都会是固定不变的(比如:一直都是/dev/sda4),但是在linux中uuid是唯一的,很难重复

 

tune2fs修改ext4档案系统的LABEL NAME和UUID:

   

  

设定开机挂载(重要文件:/etc/fstab档案系统表和/etc/mtab挂载点表),特殊装置loop挂载(暂时不看):

  当你使用mount挂载了某个分区到某个目录上面,只要你改变了该目录的结构,其实就是改变了该分区(档案系统的结果),而不是改变了这个目录

  开机自动挂载(修改/etc/fstab文件)的限制:

    根目录{/}是必须挂载的,而且一定要先于其他mount point(挂载点)挂载进来

    其他挂载点必须为己建立目录,可任意只指定,但是必须遵循系统目录架构原则(FHS)

    所有挂载点在同一时间内只能挂载一次

    所以partition在统一时间内只能挂载一次

    如果要进行卸载,则必须先将工作目录移动到mount point(及其子目录)之外

 /etc/fstab(档案系统表):

    

    总共分为留个栏位:

      第一:磁碟装置名/UUID/LABEL NAME 

      第二:挂载点

      第三:档案系统

      第四:档案系统参数

      

      第五:能否被dump备份指令作用(直接输入0就好了)

      第六:是否以fsck检测磁区(看看档案系统是否完整clean),直接填写0就行(因为xfs档案系统会以它自己的方式去进行额外的检测,fsck对xfs档案系统不适用)

  设置开机挂载步骤:

    a>.查询好需要挂载的档案系统的uuid/label name/装置档名{xfs:xfs_admin -lu /dev/sda5 ; ext4:tune2fs -l /dev/sda4 | grep name/UUID 或者dumpe2fs -h /dev/sda4 | grep name/UUID}

    b>.vi /etc/fstab,添加需要挂载的档案系统,比如:

      UUID=ce88f08a-0676-4fc5-af7d-8928ecd53fae /data/ext4 ext4 defaults 0 0

      UUID=701b1cfa-0e83-4986-86c8-0e5481262421 /data/xfs xfs defaults 0 0

    c>.最后测试一下写入的语法有没有错误:

      mount -a

      df 挂载目录(查看是否挂载成功,以后开机就会自动挂载)

    d>./etc/fstab是开机时的设定档,实际上filesystem的挂载信息是记录在/etc/mtab和/proc/mounts这两个档案中的,每次我们更动filesystem时就会修改这两个文件,万一你在/etc/fstab中输入的语法有错误,导致无法正常开机,就会进入单人维护模式,是只读的 read only的状态,也就无法更新这两个文件了,解决办法:  mount -n -o remount,rw /

     

记忆体置换空间(swap)之建置:

  先新建一个partition(类型8200):

    

  开始建置swap格式化、并观察载入:

      

  添加开机自动挂载(/etc/fstab):  

    

  暂时跳过。。。。。。。

 内容参考自鸟哥linux私房菜,传送门:http://linux.vbird.org/;