Linux文件夹、分区

时间:2021-08-20 10:29:18
必须明确,硬盘分区的存在,是由硬盘的物理特性决定的,不会因为操作系统的不同而有所改变
所以不用对为根目录/挂载分区的同时还为/usr挂载分区感到惊讶
====分区的概念====
可以把一个硬盘比成一本书,书名就是MBR(master boot record),即主引导记录。
书的正文就是硬盘上的数据
书的索引相当于分区表。下面主要讲一下索引
  • 由于历史的原因,硬盘的分区表大小受到限制,最多只能容纳4个分区(主分区)
  • 扩展分区只能有一个,扩展分区是不可用的,但可以在扩展分区的基础上分出逻辑分区,逻辑分区是可用的。
针对下面的分区情况:
  1. 20G硬盘,分成4个主分区占用15G,剩下的5G分给扩展分区。这样是不行的!因为分区表只能容纳4个纪录区,这4个纪录区已经全部被用于分配成4个主分区,自然就没办法再进行额外的扩展分区。
  2. 20G硬盘,分成3个主分区占用15G,剩下的5G分成一个扩展分区,这是可以的,可以通过扩展分区分出多个逻辑分区
  3. 仅分成1个主分区和1个扩展分区,完全可以!可以在扩展分区中进行逻辑分区
====Linux的分区====
在linux中,分区是这样的:
/dev/hda
/dev/hda1
/dev/hda2
/dev/hda5
/dev/hda6
  Linux中,设备用/dev/目录下的文件表示。例如
    /dev/hda1 第一块硬盘的第一主分区
    /dev/hdb5 第二块硬盘的第一逻辑分区
    /dev/sda4 第一块SATA硬盘的第四主分区,或者扩展分区
    /dev/null 黑洞设备
  • 在linux中,每一个设备都是用/dev/下的一个文件表示
  • hd表示这是一块IDE硬盘,如果是sd,则是一个SATA硬盘或者闪存,(IDE、SATA分别是硬盘类型接口)
  • 字母a表示该类型接口上的第一个设备,b、c、d.....则分别表示该类型接口上的第二、三、四...个设备。
  • 这里的5表示第一个逻辑分区,因为1~4分别为分区表上的四个分区预留,所以即使只分了一个主分区和一个扩展分区,hda3和hda4还是会预留下来。逻辑分区从5开始计数。
必须明确,硬盘分区的存在,是由硬盘的物理特性决定的,不会因为操作系统的不同而有所改变
所以不用对为根目录/挂载分区的同时还为/usr挂载分区感到惊讶
====分区的概念====
可以把一个硬盘比成一本书,书名就是MBR(master boot record),即主引导记录。
书的正文就是硬盘上的数据
书的索引相当于分区表。下面主要讲一下索引
  • 由于历史的原因,硬盘的分区表大小受到限制,最多只能容纳4个分区(主分区)
  • 扩展分区只能有一个,扩展分区是不可用的,但可以在扩展分区的基础上分出逻辑分区,逻辑分区是可用的。
针对下面的分区情况:
  1. 20G硬盘,分成4个主分区占用15G,剩下的5G分给扩展分区。这样是不行的!因为分区表只能容纳4个纪录区,这4个纪录区已经全部被用于分配成4个主分区,自然就没办法再进行额外的扩展分区。
  2. 20G硬盘,分成3个主分区占用15G,剩下的5G分成一个扩展分区,这是可以的,可以通过扩展分区分出多个逻辑分区
  3. 仅分成1个主分区和1个扩展分区,完全可以!可以在扩展分区中进行逻辑分区
====Linux的分区====
在linux中,分区是这样的:
/dev/hda
/dev/hda1
/dev/hda2
/dev/hda5
/dev/hda6
  Linux中,设备用/dev/目录下的文件表示。例如
    /dev/hda1 第一块硬盘的第一主分区
    /dev/hdb5 第二块硬盘的第一逻辑分区
    /dev/sda4 第一块SATA硬盘的第四主分区,或者扩展分区
    /dev/null 黑洞设备
  • 在linux中,每一个设备都是用/dev/下的一个文件表示
  • hd表示这是一块IDE硬盘,如果是sd,则是一个SATA硬盘或者闪存,(IDE、SATA分别是硬盘类型接口)
  • 字母a表示该类型接口上的第一个设备,b、c、d.....则分别表示该类型接口上的第二、三、四...个设备。
  • 这里的5表示第一个逻辑分区,因为1~4分别为分区表上的四个分区预留,所以即使只分了一个主分区和一个扩展分区,hda3和hda4还是会预留下来。逻辑分区从5开始计数。
Linux文件夹、分区

与windows不同的是,在linux中,是将分区挂载在目录下的。比如可以把 /dev/hd5 挂载到/home目录下,这样当我们再/home中保存东西的时候,其实就是在第一个逻辑分区中保存,如果再安装系统,只要把该分区挂载到/home下,进入新系统就会像回家一样。
建议挂载的目录:
  1. / :根目录,唯一必须挂载的分区。不用犹豫,选一个分区,挂在它!
  2. swap:交换分区,容量大于物理内存即可
  3. /home:通常存放自己创建的文件,建议挂载
  4. /usr:(Unix Software Resource,而不是User)应用程序目录,大部分软件都安装在这里

mount <设备文件> [挂载路径]:挂载文件系统
umount <设备文件> | <挂载路径>:卸载已挂载文件系统
df:查看已挂载文件系统的磁盘空间占用

-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统
    -T 显示文件系统类型
    -k 以k字节为单位显示
    -i 显示i节点信息,而不是磁盘块
    -t <文件系统类型> 显示指定类型的文件系统的磁盘空间使用情况
    -x <文件系统类型> 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
    -l 只显示本地文件系统

free:查看内存、缓冲区、交换空间的占用
    -b 以字节为单位显示数值
    -k 以千字节为单位显示数值
    -m 以兆字节为单位显示数值
    -g 以吉字节为单位显示数值
    -l 显示内存占用峰值
    -o 不显示缓冲区占用
    -t 统计结果
    -s <秒> 刷新频率
sync:同步文件系统。将缓冲区中的数据写入文件系统
fdisk <磁盘设备文件>:分区表修改工具
  交互命令:
    m 使用帮助
    l 查看已知文件系统类型
    p 显示分区信息
    n 新建分区 (p:主分区 l:扩展分区 参见 分区概念 )
    d 删除分区
    t 改变分区类型
    w 将改动写入分区表
    q 放弃改动并退出
  磁盘设备名称为整块磁盘,而不是磁盘中的分区。例如 /dev/hda ,而不是 /dev/hda1
====Linux的启动====
读取MBR的信息,启动Boot Manager,Linux中的Boot Manager 为GRUB
加载系统内核,启动init进程,它是Linux的根进程,任何进程都是init进程的子进程
====FHS====
FHS:Filesystem Hierachy Standard

FHS依據檔案系統使用的頻繁與否與是否允許使用者隨意更動, 而將目錄定義成為四種交互作用的形態,用表格來說有點像底下這樣:

  可分享的(shareable) 不可分享的(unshareable)
不變的(static) /usr (軟體放置處) /etc (設定檔)
  /opt (第三方協力軟體) /boot (開機與核心檔)
可變動的(variable) /var/mail (使用者郵件信箱) /var/run (程序相關)
  /var/spool/news (新聞群組) /var/lock (程序相關)

与windows不同的是,在linux中,是将分区挂载在目录下的。比如可以把 /dev/hd5 挂载到/home目录下,这样当我们再/home中保存东西的时候,其实就是在第一个逻辑分区中保存,如果再安装系统,只要把该分区挂载到/home下,进入新系统就会像回家一样。
建议挂载的目录:
  1. / :根目录,唯一必须挂载的分区。不用犹豫,选一个分区,挂在它!
  2. swap:交换分区,容量大于物理内存即可
  3. /home:通常存放自己创建的文件,建议挂载
  4. /usr:(Unix Software Resource,而不是User)应用程序目录,大部分软件都安装在这里

mount <设备文件> [挂载路径]:挂载文件系统
umount <设备文件> | <挂载路径>:卸载已挂载文件系统
df:查看已挂载文件系统的磁盘空间占用

-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统
    -T 显示文件系统类型
    -k 以k字节为单位显示
    -i 显示i节点信息,而不是磁盘块
    -t <文件系统类型> 显示指定类型的文件系统的磁盘空间使用情况
    -x <文件系统类型> 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
    -l 只显示本地文件系统

free:查看内存、缓冲区、交换空间的占用
    -b 以字节为单位显示数值
    -k 以千字节为单位显示数值
    -m 以兆字节为单位显示数值
    -g 以吉字节为单位显示数值
    -l 显示内存占用峰值
    -o 不显示缓冲区占用
    -t 统计结果
    -s <秒> 刷新频率
sync:同步文件系统。将缓冲区中的数据写入文件系统
fdisk <磁盘设备文件>:分区表修改工具
  交互命令:
    m 使用帮助
    l 查看已知文件系统类型
    p 显示分区信息
    n 新建分区 (p:主分区 l:扩展分区 参见 分区概念 )
    d 删除分区
    t 改变分区类型
    w 将改动写入分区表
    q 放弃改动并退出
  磁盘设备名称为整块磁盘,而不是磁盘中的分区。例如 /dev/hda ,而不是 /dev/hda1
====Linux的启动====
读取MBR的信息,启动Boot Manager,Linux中的Boot Manager 为GRUB
加载系统内核,启动init进程,它是Linux的根进程,任何进程都是init进程的子进程
====FHS====
FHS:Filesystem Hierachy Standard

FHS依據檔案系統使用的頻繁與否與是否允許使用者隨意更動, 而將目錄定義成為四種交互作用的形態,用表格來說有點像底下這樣:

  可分享的(shareable) 不可分享的(unshareable)
不變的(static) /usr (軟體放置處) /etc (設定檔)
  /opt (第三方協力軟體) /boot (開機與核心檔)
可變動的(variable) /var/mail (使用者郵件信箱) /var/run (程序相關)
  /var/spool/news (新聞群組) /var/lock (程序相關)