磁盘与文件系统管理之二
2016-01-25 15:19
246 查看
设备文件:
b:block,块设备,随机访问设备,比如硬盘
c:character,字符设备,线性访问设备,比如键盘
ls -l /dev下设备文件的特殊字段(普通文件中的大小字段):
主设备号(major number)
标识设备类型
此设备号(minor number)
标识同一设备类型中的不同设备
mknod:创建设备文件
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
-m mode 指定权限
echo "hello" > /dev/pts/0:向终端发送hello字符,如果刚好有用户在pts/0上登陆,则终端会显示hello字符。
硬盘设备的设备文件名
IDE,ATA:hd
SATA:sd
SCSI:sd
USB:sd
a,b....来自同一类型下的不同设备
IDE:
第一个IDE口:主、从
/dev/hda,/dev/hdb
第一个IDE口:主、从
/dev/hdc,/dev/hddhda:
hda{1-4}:第n个主分区
hda5:第一个逻辑分区
这是因为MBR里面只有64字节标识分区表,而每16位标识一个分区,为了不混淆,1-4的编号特定给主分区或扩展分区用,而扩展分区要再划分成逻辑分区才能使用,所以逻辑分区从5号开始。且磁盘容量满足一下公式:
逻辑1+逻辑2+...逻辑n=这些逻辑分区共同的扩展分区容量
所有的扩展分区+所有的主分区容量=硬盘容量
分区表操作命令:fdisk
fdisk -l:查看当前系统上的分区详情
高级格式化命令:mkfs
格式化过程:管理员使用mkfs命令唤醒一个进程,进程会根据你指定的文件系统类型去内核查看并加载对应模块,然后使用模块的功能进行格式化。
Q:为什么文件系统要做成内核模块
因为大部分文件系统所提供的功能都是相似的,如果每个命令都根据相对应的文件系统进行编写,那么程序无疑是庞大而冗余的,而如果做成内核模块,再把功能做成统一接口向用户提供,则大大精简了程序,这个接口我们就叫做VFS(虚拟文件系统,virtual filesystem)。所以当我们要指定某一文件系统类型的时候,内核必须含有相对应的文件系统类型模块。
挂载点相关知识:
当我们新建一个分区时,系统并不能马上识别这个分区,这个时候我们可以用partprobe命令重读分区表,当分区表格式化完成的时候,linux也不能马上使用这个文件系统,必须把这个文件系统挂载在相对应的路径上,这个路径我们就叫做挂载点。
挂载点必须在当前linux系统所在的分区上,且一个挂载点只能挂载一个分区,如果挂载多个,那么会隐藏第一个被挂载的分区,这是因为:
假设/tmp在当前分区上,我们有两个分区a和b,a挂载在/dev上,b挂载在a上,这个时候如果把/tmp挂载在b上将会造成一个死循环,为了避免这种情况发生,我们规定一个挂载点只能挂载一个分区。
管理磁盘分区:
fdisk /dev/sda
p:显示当前硬件的分区,包括没保存的改动
n:新建新分区(new)
p:主分区 (primary)
e:逻辑分区(extend)
d:删除一个分区(delete)
w:保存退出
q:不保存退出
t:修改分区类型
l:显示所支持的所有类型
b:block,块设备,随机访问设备,比如硬盘
c:character,字符设备,线性访问设备,比如键盘
ls -l /dev下设备文件的特殊字段(普通文件中的大小字段):
主设备号(major number)
标识设备类型
此设备号(minor number)
标识同一设备类型中的不同设备
mknod:创建设备文件
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
-m mode 指定权限
echo "hello" > /dev/pts/0:向终端发送hello字符,如果刚好有用户在pts/0上登陆,则终端会显示hello字符。
硬盘设备的设备文件名
IDE,ATA:hd
SATA:sd
SCSI:sd
USB:sd
a,b....来自同一类型下的不同设备
IDE:
第一个IDE口:主、从
/dev/hda,/dev/hdb
第一个IDE口:主、从
/dev/hdc,/dev/hddhda:
hda{1-4}:第n个主分区
hda5:第一个逻辑分区
这是因为MBR里面只有64字节标识分区表,而每16位标识一个分区,为了不混淆,1-4的编号特定给主分区或扩展分区用,而扩展分区要再划分成逻辑分区才能使用,所以逻辑分区从5号开始。且磁盘容量满足一下公式:
逻辑1+逻辑2+...逻辑n=这些逻辑分区共同的扩展分区容量
所有的扩展分区+所有的主分区容量=硬盘容量
分区表操作命令:fdisk
fdisk -l:查看当前系统上的分区详情
高级格式化命令:mkfs
格式化过程:管理员使用mkfs命令唤醒一个进程,进程会根据你指定的文件系统类型去内核查看并加载对应模块,然后使用模块的功能进行格式化。
Q:为什么文件系统要做成内核模块
因为大部分文件系统所提供的功能都是相似的,如果每个命令都根据相对应的文件系统进行编写,那么程序无疑是庞大而冗余的,而如果做成内核模块,再把功能做成统一接口向用户提供,则大大精简了程序,这个接口我们就叫做VFS(虚拟文件系统,virtual filesystem)。所以当我们要指定某一文件系统类型的时候,内核必须含有相对应的文件系统类型模块。
挂载点相关知识:
当我们新建一个分区时,系统并不能马上识别这个分区,这个时候我们可以用partprobe命令重读分区表,当分区表格式化完成的时候,linux也不能马上使用这个文件系统,必须把这个文件系统挂载在相对应的路径上,这个路径我们就叫做挂载点。
挂载点必须在当前linux系统所在的分区上,且一个挂载点只能挂载一个分区,如果挂载多个,那么会隐藏第一个被挂载的分区,这是因为:
假设/tmp在当前分区上,我们有两个分区a和b,a挂载在/dev上,b挂载在a上,这个时候如果把/tmp挂载在b上将会造成一个死循环,为了避免这种情况发生,我们规定一个挂载点只能挂载一个分区。
管理磁盘分区:
fdisk /dev/sda
p:显示当前硬件的分区,包括没保存的改动
n:新建新分区(new)
p:主分区 (primary)
e:逻辑分区(extend)
d:删除一个分区(delete)
w:保存退出
q:不保存退出
t:修改分区类型
l:显示所支持的所有类型
相关文章推荐
- 用FDISK进行硬盘分区 图文教程
- oracle中fdisk导致的ASM磁盘数据丢失的解决方法
- Linux磁盘分区管理(转载)
- Linux下的两种磁盘分区工具的使用
- 如何使用fdisk
- fdisk 使用方法一
- fdisk 使用方法二
- linux系统硬盘分区工具之fdisk
- 解决:Disk /dev/sdb doesn't contain a valid partition table
- 如何查看ubuntu下的分区命令
- fdisk 格式话磁盘
- fdisk -l
- linux u盘分区+格式化
- fdisk
- fdisk命令详解
- centos 6.4 磁盘故障 更换磁盘
- Linux查看磁盘分区等命令和相关工具介绍
- Nov/26 fdisk -l information
- Solaris 磁盘命令
- Linux下用fdisk进行磁盘分区