Linux磁盘管理

磁盘和目录容量


df [-ahik] [目录或者文件名]


参数:

-k : 以KB容量显示各文件系统

-m :以MB容量显示各文件系统

-h: 以KB,MB,GB等比较智能化的格式显示文件系统容量

-i : 以inode的数量来显示

fdisk [-l] [设备名称]


上面是我的硬盘信息,从上到下分别是硬盘320G大,每个柱面255磁头,每个磁头63个扇区,38913个柱面,每个扇区大小512字节。下面的列表就是设备名称了,因为是SATA接口的硬盘,所以都以sda开头,sda1和sda2是我windows上面的两个主分区,sda3是扩展分区。这里有个分区表的概念,磁盘分区表的大小是64Bytes,总共分成4组记录分区,每组记录区记录了该段的启动和结束的柱面号码,因此一个硬盘只能有4个主分区,但是扩展分区可以算主分区,但是操作系统规定扩展分区只能有一个。上面的sda3就是扩展分区,sda4我没有划分,所以直接空过去了。sda5~10都属于sda3的逻辑分区了。可以看下sd3柱头的起始位置和柱头结束位置,刚好是sd4的起始位置和sd10的结束位置。

再看看第四列,Blocks是块的大小,第5行的ID我不是很懂,最后一列很简单,就是文件系统格式。其中sda3的文件格式是LBA(Logical Block Addressing)逻辑块寻址。

下面大概介绍Linux的文件系统,对于文件的属性(持有者,用户,时间等)和权限(rwx)之类的信息放到一个inode的数据结构中,而文件的实际数据内容则是放到dataBlocks中,inode和dataBlocks都是有编号的。先说下dataBlocks这个东西,就是一块块数据块嘛,文件大了话就多几个数据块。inode是节点的意思嘛,意思就是通过inode节点可以来寻找文件的实际内容,那么inode里面肯定要存取着文件实际内容的数据块编号,然后通过编号找到dataBlocks中的文件内容,如果文件不止一块,那么找下一个inode即可。这里还有一个superblock的概念:superlock记录了整个文件系统的整个信息,包括inode和block的总量,已使用量,剩余量等等。。。(看来有时间得去好好看下linux内核源码,这里就大概介绍下)

下面就看下命令

df -i 


磁盘分区的建立和删除,格式化


  • 先输入 fdisk -l [设备名称]
  • 输入m可以获取帮助
  • 在完成操作后按q不保存退出,按w直接写入。


添加一个分区


  • 进入磁盘管理后,输入 n
  • 会出现当前设备分区信息,p代表主分区,e代表扩展分区
  • 如下图,建立一个逻辑分区,输入磁盘分区号
  • 再是选择柱面的起始位置和结束位置
  • 最后是分区大小,+514M(+XXM是必须的)


删除分区


  • 进入磁盘管理,输入d
  • 选择要删除的分区号就ok了

格式化分区


mkfs [-t 文件系统格式] [设备名称]

标签:Linux