Windows与Linux操作系统对磁盘和文件的管理方式有啥异同点(求详细)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows与Linux操作系统对磁盘和文件的管理方式有啥异同点(求详细)相关的知识,希望对你有一定的参考价值。

Windows与Linux操作系统对磁盘和文件的管理方式区别为:文件格式不同、空间不同、碎片整理不同。Windows与Linux操作系统都是以一组磁盘管理应用程序的形式提供给用户。在硬盘中产生临时交换文件,用该文件所占用的硬盘空间虚拟成内存。

一、文件格式不同

1、Windows操作系统:Windows操作系统使用FAT、NTFS文件格式。

2、Linux操作系统:Linux操作系统使用ext2、ext3、ext4文件格式。

二、空间不同

1、Windows操作系统:Windows操作系统的磁盘驱动器上有很多扇区,每个扇区都有存放一小段数据。大文件的存储需要占用很多不同的扇区。

2、Linux操作系统:Linux操作系统把所有文件都分散到了整个磁盘上,每两个文件之间都留有相当巨大的空闲空间。

三、碎片整理不同

1、Windows操作系统:当文件被修改、体积增加时,Windows操作系统尝试把文件新增的部分存放到紧邻原始文件的扇区里。但周边已经没连续的足够扇区空间了,文件需要被分割成数段。所以需要一个碎片整理工具。

2、Linux操作系统:当文件被修改、体积增加时,Linux操作系统通常有足够的空间来扩展,一旦有碎片产生时,文件系统会尝试移动整个文件来消除碎片。所以不需要一个碎片整理工具。

参考技术A

 磁盘文件系统是一种设计用来利用数据存储设备来保存计算机文件的文件系统,最常用的数据存储设备是磁盘驱动器,可以直接或者间接地连接到计算机上。例如:FAT、exFAT、NTFS、HFS、HFS+、ext2、ext3、ext4、ODS-5、btrfs。

      常见的,Windows 98和Windows ME使用FAT文件系统,Windows XP、2000、2003、2008以及Windows 7使用NTFS文件系统。Linux使用ext2、ext3、ext4文件系统。

Windows文件系统学习

      微软的DOS和windows文件系统文件结构采用树型结构,在DOS和 windows中这样的树型结构的根是磁盘分区的盘符(如C:),有几个分区就有几个树型结构,他们之间的关系是并列的。可以使用cd命令来切换目录,有趣的是:在命令行下目录结构Windows是“\\”,而Linux是“/”

Windows磁盘碎片整理的原理

 磁盘驱动器上有很多扇区,每个扇区都有存放一小段数据。文件,特别是大文件的存储需要占用很多不同的扇区。

      有很多个文件存在的文件系统里,每个文件都会被存储在一系列连接的扇区里。后来更新了其中的一个文件,它的体积变大了。文件系统尝试把文件新增的部分存放到紧邻原始文件的扇区里。但,它周边已经没连续的足够扇区空间了,文件需要被分割成数段——这些都在自动进行的。当从磁盘上读取这个文件时,磁盘磁头需要跨越数个不同的物理位置来读取各个扇区——这样会使速度降低。

        磁盘碎片整理就是小心地移动这些小文件块来减少碎片,让每个文件都能连续的分布在磁盘上。

       如果是固态硬盘,情况又不同了,固态硬盘没有机械移动,不应该进行碎片整理——对一个u盘进行碎片整理通常会降低它的寿命。

       由于这些文件系统的工作原理,它们注定需要进行碎片整理来保持高性能。微软在它最新的视窗系统里通过在后台运行一个磁盘碎片整理进程来解决这个问题。





Linux文件系统学习

     Linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。

如几个重要的目录:/etc 系统管理和配置文件、/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示

Linux文件系统使用索引节点来记录文件信息。

     了解一下Linux中文件系统如何处理数据文件,而不需要进行碎片整理?    Linux的ext2、ext3、ext4采用一种聪明的方法来存放文件。把多个文件并排放在磁盘上不同位置,Linux文件系统把所有文件都分散到了整个磁盘上,每两个文件之间都留有相当巨大的空闲空间。当文件被修改、体积增加时,它们通常有足够的空间来扩展,一旦有碎片产生时,文件系统会尝试移动整个文件来消除碎片。所以不需要一个碎片整理工具。

       Linux的ext2、ext3、ext4采用一种聪明的方法来存放文件。把多个文件并排放在磁盘上不同位置,Linux文件系统把所有文件都分散到了整个磁盘上,每两个文件之间都留有相当巨大的空闲空间。当文件被修改、体积增加时,它们通常有足够的空间来扩展,一旦有碎片产生时,文件系统会尝试移动整个文件来消除碎片。所以不需要一个碎片整理工具。

参考技术B 看这里
http://vbird.dic.ksu.edu.tw/linux_basic/0230filesystem_1.php

我们都知道磁盘分区完毕后还需要进行格式化(format),之后操作系统才能够使用这个分割槽。 为什么需要进行『格式化』呢?这是因为每种操作系统所配置的文件属性/权限并不相同, 为了存放这些文件所需的数据,因此就需要将分割槽进行格式化,以成为操作系统能够利用的『文件系统格式(filesystem)』。
由此我们也能够知道,每种操作系统能够使用的文件系统并不相同。 举例来说,windows 98 以前的微软操作系统主要利用的文件系统是 FAT (或 FAT16),windows 2000 以后的版本有所谓的 NTFS 文件系统,至于 Linux 的正统文件系统则为 Ext2 (Linux second extended file system, ext2fs)这一个。此外,在默认的情况下,windows 操作系统是不会认识 Linux 的 Ext2 的。
传统的磁盘与文件系统之应用中,一个分割槽就是只能够被格式化成为一个文件系统,所以我们可以说一个 filesystem 就是一个 partition。但是由于新技术的利用,例如我们常听到的LVM与软件磁盘阵列(software raid), 这些技术可以将一个分割槽格式化为多个文件系统(例如LVM),也能够将多个分割槽合成一个文件系统(LVM, RAID)! 所以说,目前我们在格式化时已经不再说成针对 partition 来格式化了, 通常我们可以称呼一个可被挂载的数据为一个文件系统而不是一个分割槽喔!
那么文件系统是如何运行的呢?这与操作系统的文件数据有关。较新的操作系统的文件数据除了文件实际内容外, 通常含有非常多的属性,例如 Linux 操作系统的文件权限(rwx)与文件属性(拥有者、群组、时间参数等)。 文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到 inode 中,至于实际数据则放置到 data block 区块中。 另外,还有一个超级区块 (superblock) 会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等。
每个 inode 与 block 都有编号,至于这三个数据的意义可以简略说明如下:
superblock:记录此 filesystem 的整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统的格式与相关信息等;
inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的 block 号码;
block:实际记录文件的内容,若文件太大时,会占用多个 block 。
由于每个 inode 与 block 都有编号,而每个文件都会占用一个 inode ,inode 内则有文件数据放置的 block 号码。 因此,我们可以知道的是,如果能够找到文件的 inode 的话,那么自然就会知道这个文件所放置数据的 block 号码, 当然也就能够读出该文件的实际数据了。这是个比较有效率的作法,因为如此一来我们的磁盘就能够在短时间内读取出全部的数据, 读写的效能比较好啰。
我们将 inode 与 block 区块用图解来说明一下,如下图所示,文件系统先格式化出 inode 与 block 的区块,假设某一个文件的属性与权限数据是放置到 inode 4 号(下图较小方格内),而这个 inode 记录了文件数据的实际放置点为 2, 7, 13, 15 这四个 block 号码,此时我们的操作系统就能够据此来排列磁盘的阅读顺序,可以一口气将四个 block 内容读出来! 那么数据的读取就如同下图中的箭头所指定的模样了。
图1.2.1、inode/block 数据存取示意图
这种数据存取的方法我们称为索引式文件系统(indexed allocation)。那有没有其他的惯用文件系统可以比较一下啊? 有的,那就是我们惯用的闪盘(闪存),闪盘使用的文件系统一般为 FAT 格式。FAT 这种格式的文件系统并没有 inode 存在,所以 FAT 没有办法将这个文件的所有 block 在一开始就读取出来。每个 block 号码都记录在前一个 block 当中, 他的读取方式有点像底下这样:
图1.2.2、FAT文件系统数据存取示意图
上图中我们假设文件的数据依序写入1->7->4->15号这四个 block 号码中, 但这个文件系统没有办法一口气就知道四个 block 的号码,他得要一个一个的将 block 读出后,才会知道下一个 block 在何处。 如果同一个文件数据写入的 block 分散的太过厉害时,则我们的磁盘读取头将无法在磁盘转一圈就读到所有的数据, 因此磁盘就会多转好几圈才能完整的读取到这个文件的内容!
常常会听到所谓的『碎片整理』吧? 需要碎片整理的原因就是文件写入的 block 太过于离散了,此时文件读取的效能将会变的很差所致。 这个时候可以透过碎片整理将同一个文件所属的 blocks 汇整在一起,这样数据的读取会比较容易啊! 想当然尔,FAT 的文件系统需要经常的碎片整理一下,那么 Ext2 是否需要磁盘重整呢?
由于 Ext2 是索引式文件系统,基本上不太需要常常进行碎片整理的。但是如果文件系统使用太久, 常常删除/编辑/新增文件时,那么还是可能会造成文件数据太过于离散的问题,此时或许会需要进行重整一下的。 不过,老实说,鸟哥倒是没有在 Linux 操作系统上面进行过 Ext2/Ext3 文件系统的碎片整理说!似乎不太需要啦!^_^追问

很感谢你的详细回答,但没有我要的答案,俩系统的磁盘和文件管理*异同点*

本回答被提问者和网友采纳
参考技术C 各个驱动器(包括分区)WINDOWS作为“磁盘”来处理,分配驱动器盘符;LINUX作为“目录”来处理。分区内文件管理方式类似。追问

能再详细点吗?谢谢!

追答

亲,再详细就要打很多字了,这是总结。具体的楼下有链接,一般来说,初略了解一下就可以了,这种底层的东西,我们用户是无法改变的,类似“定理”

追问

麻烦就不用了 谢谢!O(∩_∩)O

参考技术D 一个是分页存储,一个是索引存储方式把。

Linux磁盘与文件系统管理

本篇主要讲述:
1 磁盘挂载
2 磁盘管理
3 LVM逻辑卷的使用
4 交换分区swap(虚拟内存)
5 RAID
 
1、磁盘挂载操作
1.1 含义
将光盘,U盘,分区,网络存储等设备装到某个Linux目录。
各种命令工具通过访问Linux目录来操作这些设备。
访问光盘的内容
Windows:
光盘文件------->光驱设备------->CD驱动器(图标)
访问点(挂载点): 访问设备内容需要通过访问点  
Linux:
光盘文件------->光驱设备-------------->目录(/dvd)
/dev/sr0     #光驱的设备名称
/dev/hdc   
[root@localhost ~]# ls -l /dev/cdrom                    #光驱设备的快捷方式
lrwxrwxrwx. 1 root root 3 May 17 05:49 /dev/cdrom -> sr0
[root@localhost ~]# mkdir /dvd
[root@localhost ~]# mount /dev/cdrom /dvd/     #提供设备的访问点
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# ls /dvd/
addons  EULA  images    LiveOS      Packages       repodata                 RPM-GPG-KEY-redhat-release
EFI     GPL   isolinux  media.repo  release-notes  RPM-GPG-KEY-redhat-beta  TRANS.TBL
[root@localhost ~]# umount /dvd/   #卸载
 
1.2 实现开机自挂载
在/etc/fstab文件内设置
[root@localhost ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Apr 12 16:21:56 2020
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root   /                       xfs     defaults        1 1
UUID=8593eb92-1b71-4f9f-9baf-cbed97462e78 /boot                   xfs     defaults        1 2
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
文件内挂载参数说明:设备/UUID   挂载点   挂载的文件系统类型    设置挂载的参数   dump是否备份   fsck磁盘检查
文件系统类型:ext2,ext3,ext4,xfs...
挂载的参数分类如下:
auto: 系统自动挂载,fstab默认就是这个选项
defaults: rw, suid, dev, exec, auto, nouser, and async.
noauto 开机不自动挂载
nouser 只有超级用户可以挂载
ro 按只读权限挂载
rw 按可读可写权限挂载
user 任何用户都可以挂载
请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto
dump备份设置:
其值设置为1时,允许备份;设置为0时,忽略备份
开机是否fsck磁盘检查:
其值设置为1时,开机进行检查;设置为0时,不进行检查。

2、磁盘管理

磁道:track
扇区:sector  每个扇区,512字节
磁头:head
柱面:cylinde
2.1 MBR/msdos 分区模式
– 1~4个主分区,或者 0~3个主分区+1个扩展分区(n个逻辑分区)
– 最大支持容量为 2.2TB 的磁盘
– 扩展分区不能格式化
识别硬盘 => 分区规划 => 格式化 => 挂载使用
2.2 查看磁盘lsblk
[root@localhost ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0             2:0    1    4K  0 disk
sda             8:0    0    5G  0 disk
├─sda1          8:1    0  500M  0 part /boot
└─sda2          8:2    0  4.5G  0 part
  ├─rhel-root 253:0    0    4G  0 lvm  /
  └─rhel-swap 253:1    0  512M  0 lvm  [SWAP]
sdb             8:16   0    5G  0 disk
sr0            11:0    1  3.5G  0 rom
2.3 修改硬盘的分区表
使用fdisk 命令(分区格式为MBR)
使用gdisk命令(分区格式为GPT)
常用交互指令:
m 列出指令帮助
p 查看现有的分区表
n 新建分区
d 删除分区
q 放弃更改并退出
w 保存更改并退出
[root@server0 ~]# fdisk   /dev/vdb
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +2G
p 查看分区表
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +2G
d 删除分区
w 保存并退出
 
2.4 格式化文件系统
mkfd工具集
mkfs.ext3  分区设备路径
mkfs.ext4  分区设备路径
mkfs.xfs   分区设备路径
mkfs.vfat  分区设备路径
[root@server0 ~]# mkfs.xfs /dev/vdb1
[root@server0 ~]# mkfs.ext4 /dev/vdb2
2.5 查看分区文件系统
blkid 
[root@localhost ~]# blkid
/dev/sda1: UUID="8593eb92-1b71-4f9f-9baf-cbed97462e78" TYPE="xfs"
/dev/sda2: UUID="UizqW3-bEOH-iNXT-q4c1-xfua-TTwK-FJiOMk" TYPE="LVM2_member"
/dev/sr0: UUID="2014-05-07-03-58-46-00" LABEL="RHEL-7.0 Server.x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/rhel-root: UUID="6ebb5d4b-51dd-4d9b-85b8-78b7aed37d30" TYPE="xfs"
/dev/mapper/rhel-swap: UUID="43f548d3-1ea3-4d8d-9cec-f90aef868ca1" TYPE="swap"
[root@server0 ~]# blkid /dev/vdb1
[root@server0 ~]# blkid /dev/vdb2
挂载使用
[root@server0 ~]# mkdir /part1
[root@server0 ~]# mkdir /part2
[root@server0 ~]# mount /dev/vdb1 /part1
[root@server0 ~]# mount /dev/vdb2 /part2
2.6 查看正在挂载使用的设备信息
[root@server0 ~]# df  -h
缓解根分区的压力
[root@server0 ~]# find  -size  查找较大的目录有哪些
[root@server0 ~]#  还分新的分区 /dev/vdc1
[root@server0 ~]#  mount /dev/vdc1   /mnt
[root@server0 ~]#  cp -r /home/*    /mnt
[root@server0 ~]#  rm -rf /home/*
[root@server0 ~]#  umount /mnt
[root@server0 ~]#  mount /dev/vdc1   /home
将虚拟机server重起
[root@server0 ~]# reboot
 

3、LVM逻辑卷的使用(logicl volume)

1)整合分散的空间
2)实现分区的动态扩大与缩减
在“分区 --> 格式化”中间增加的一个逻辑层
–零散空闲存储 ---- 整合的虚拟磁盘 ---- 虚拟的分区----- 格式化------ 挂载
物理卷:Physical Volume
卷组:Volume Group
逻辑卷:Logical Volume
将众多的物理卷,组成卷组,再从卷组中划分逻辑卷
综合分区
将/dev/vdc划分6个分区,3个主分区,一个扩展分区,2个逻辑分区
[root@server0 ~]# fdisk   /dev/vdc
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G
p 查看分区表
n 创建新的分区
 ----->回车---->起始回车----->结束回车  将所有空间给扩展分区
p 查看分区表
n 创建新的分区----->起始回车------>结束+10G
n 创建新的分区----->起始回车------>结束+10G
wq 保存并退出
[root@server0 ~]# partprobe         #刷新分区表
[root@server0 ~]# ls /dev/vdc[1-6]
[root@server0 ~]# lsblk
[root@server0 ~]# ls /dev/vdc*
3.1 新建逻辑卷
1)新建卷组
命令格式:vgcreate  卷组名称   分区路径
[root@server0 ~]# vgcreate  myvg  /dev/vdc1  /dev/vdc2
[root@server0 ~]# vgs
[root@server0 ~]# pvs    #查看卷组
2)创建逻辑卷
命令格式:lvcreate  -n  逻辑卷名称  -L 大小  基于卷组
[root@server0 ~]# lvcreate  -n  mylv  -L 16G   myvg
[root@server0 ~]# lvs    #查看逻辑卷
3)使用LVM逻辑卷
[root@server0 ~]# mkfs.ext4 /dev/myvg/mylv   #格式化
[root@server0 ~]# mkdir /lvm
vim /etc/fstab                                    #开机自挂载
路径   挂载点 格式  defaults  0  0
[root@server0 ~]# mount -a
[root@server0 ~]# df -h
 
3.2 LVM逻辑卷的扩展
(1)卷组有足够的剩余空间
a.直接扩展逻辑卷的空间
[root@server0 ~]# vgs
[root@server0 ~]# lvextend  -L  19G  /dev/myvg/mylv
[root@server0 ~]# lvs
[root@server0 ~]# vgs
b.扩展文件系统的大小
扩展ext4文件系统:使用resize2fs进行格式化
扩展xfs文件系统: 使用xfs_growfs进行格式化
[root@server0 ~]# df  -h | tail -1
[root@server0 ~]# blkid /dev/myvg/mylv
[root@server0 ~]# resize2fs /dev/myvg/mylv   #格式化
[root@server0 ~]# df  -h | tail -1
(2)卷组没有足够的剩余空间
a.扩展卷组空间
[root@server0 ~]# vgextend myvg /dev/vdc3
[root@server0 ~]# vgs
b.直接扩展逻辑卷的空间
[root@server0 ~]# vgs
[root@server0 ~]# lvextend  -L  25G  /dev/myvg/mylv
[root@server0 ~]# lvs
[root@server0 ~]# vgs
c.扩展文件系统的大小
[root@server0 ~]# df  -h | tail -1
[root@server0 ~]# resize2fs /dev/myvg/mylv
[root@server0 ~]# df  -h | tail -1
以下作为了解:
缩减:不要做, 先缩减文件系统的大小,在缩减空间大小
[root@server0 ~]# resize2fs /dev/myvg/mylv 10G
[root@server0 ~]# umount /lvm
[root@server0 ~]# resize2fs /dev/myvg/mylv 10G
resize2fs 1.42.9 (28-Dec-2013)
请先运行 ‘e2fsck -f /dev/myvg/mylv‘.
[root@server0 ~]# e2fsck -f /dev/myvg/mylv
[root@server0 ~]# resize2fs /dev/myvg/mylv 10G
[root@server0 ~]# lvreduce -L 10G /dev/myvg/mylv
[root@server0 ~]# lvreduce -L 10G /dev/myvg/mylv
WARNING: Reducing active logical volume to 10.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y
 
3.3 创建卷组的时候设置PE大小
– vgcreate -s  PE大小   卷组名    空闲分区...
– vgchange -s  PE大小   卷组名
PE:卷组划分空间的单位   4M
[root@server0 ~]# vgdisplay myvg
[root@server0 ~]# vgchange -s 2M  myvg
[root@server0 ~]# vgdisplay myvg
 
3.4 创建逻辑卷的时候指定PE个数
lvcreate   -l   PE个数  -n   逻辑卷名 卷组名
[root@server0 ~]# lvcreate  -l  102  -n  lvtest02  myvg
Logical volume "lvtest02" created
[root@server0 ~]# lvs
 

4、交换分区swap(虚拟内存)

• 相当于虚拟内存,
– 当物理内存不够用时,使用磁盘空间来模拟内存
– 在一定程度上缓解内存不足的问题
[root@server0 ~]# swapon -s    #查看交换空间,组成 成员信息
[root@server0 ~]# mkswap /dev/vdc5    #格式化,交换文件系统
[root@server0 ~]# swapon /dev/vdc5    #启用交换分区
 
[root@server0 ~]# mkswap /dev/vdc6   #格式化,交换文件系统
[root@server0 ~]# swapon /dev/vdc6   #启用交换分区
[root@server0 ~]# swapon -s
 
开机自动启用交换分区 /etc/fstab
[root@server0 ~]# vim /etc/fstab           #开机自挂载
/dev/vdc5  swap  swap   defaults  0 0
/dev/vdc6  swap  swap   defaults  0 0
 
[root@server0 ~]# swapoff /dev/vdc[5-6]   #停用交换分区
[root@server0 ~]# swapon -s
[root@server0 ~]# swapon -a     #检测/etc/fstab交换分区
[root@server0 ~]# swapon -s
 
大容量的使用gpt分区模式:gdisk
交换分区的优先级:-1
 
逻辑卷的扩展:扩展之后lsblk 显示的是扩展之后的总容量
而df -h显示的还是原来的大小
磁盘情况刷新:partprobe
 
功能                物理卷管理      卷组管理      逻辑卷管理
scan/扫描        pvscan            vgscan           lvscan
create/创建     pvcreate          vgcreate         lvcreate
display            pvdisplay         vgdisplay       lvdisplay
remove           pvremove        vgremove       lvremove
extend                                    vgextend        lvextend
 
5、关于dd命令的使用
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2
dd if="input_file" of="out_file"  bs="block_size"  count="number"
参数注释:
1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
   obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
   bs=bytes:同时设置读入/输出的块大小为bytes个字节。
4. cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
5. skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
6. seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
7. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
8. conv=conversion:用指定的参数转换文件。
    ascii:转换ebcdic为ascii
    ebcdic:转换ascii为ebcdic
    ibm:转换ascii为alternate ebcdic
    block:把每一行转换为长度为cbs,不足部分用空格填充
    unblock:使每一行的长度都为cbs,不足部分用空格填充
    lcase:把大写字符转换为小写字符
    ucase:把小写字符转换为大写字符
    swab:交换输入的每对字节
    noerror:出错时不停止
    notrunc:不截短输出文件
    sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
 
 
 案例:/dev/sdb磁盘分区、格式化、挂载
1、磁盘分区操作
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
 
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
 
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x711d3770.
 
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-10485759, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):
Using default value 10485759
Partition 1 of type Linux and of size 5 GiB is set
 
Command (m for help): p
 
Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x711d3770
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10485759     5241856   83  Linux
 
Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.
此时查看磁盘分区情况:
[root@localhost ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0             2:0    1    4K  0 disk
sda             8:0    0    5G  0 disk
├─sda1          8:1    0  500M  0 part /boot
└─sda2          8:2    0  4.5G  0 part
  ├─rhel-root 253:0    0    4G  0 lvm  /
  └─rhel-swap 253:1    0  512M  0 lvm  [SWAP]
sdb             8:16   0    5G  0 disk
└─sdb1          8:17   0    5G  0 part
sr0            11:0    1  3.5G  0 rom
 
2、格式化
[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=256    agcount=4, agsize=327616 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=1310464, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
 
[root@localhost ~]# blkid
/dev/sda1: UUID="8593eb92-1b71-4f9f-9baf-cbed97462e78" TYPE="xfs"
/dev/sda2: UUID="UizqW3-bEOH-iNXT-q4c1-xfua-TTwK-FJiOMk" TYPE="LVM2_member"
/dev/sr0: UUID="2014-05-07-03-58-46-00" LABEL="RHEL-7.0 Server.x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/rhel-root: UUID="6ebb5d4b-51dd-4d9b-85b8-78b7aed37d30" TYPE="xfs"
/dev/mapper/rhel-swap: UUID="43f548d3-1ea3-4d8d-9cec-f90aef868ca1" TYPE="swap"
/dev/sdb1: UUID="db62328e-05c1-4760-ba6d-44e90cf5c4c5" TYPE="xfs"
3、挂载
[root@localhost ~]# mount /dev/sdb1 /dvd/
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               910M     0  910M   0% /dev
tmpfs                  918M     0  918M   0% /dev/shm
tmpfs                  918M  8.6M  909M   1% /run
tmpfs                  918M     0  918M   0% /sys/fs/cgroup
/dev/mapper/rhel-root  4.0G  2.2G  1.9G  53% /
/dev/sda1              497M  100M  398M  20% /boot
/dev/sdb1              5.0G   33M  5.0G   1% /dvd
 
案例:上述分区后的磁盘取消挂载后进行逻辑卷操作
(1)新建卷组
[root@localhost ~]# vgcreate myvg /dev/sdb1
WARNING: dos signature detected on /dev/sdb1 at offset 510. Wipe it? [y/n] y
  Wiping dos signature on /dev/sdb1.
  Physical volume "/dev/sdb1" successfully created
  Volume group "myvg" successfully created
(2)查看卷组
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize VFree
  myvg   1   0   0 wz--n- 5.00g 5.00g
  rhel   1   2   0 wz--n- 4.51g    0
 
[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/sda2  rhel lvm2 a--  4.51g    0
  /dev/sdb1  myvg lvm2 a--  5.00g 5.00g
 
(3)创建逻辑卷
[root@localhost ~]# lvcreate -n mylv -L 100M myvg
  Logical volume "mylv" created
[root@localhost ~]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  mylv myvg -wi-a----- 100.00m
  root rhel -wi-ao----   4.01g
  swap rhel -wi-ao---- 512.00m
(4)格式化
[root@localhost ~]# mkfs.xfs /dev/myvg/mylv
meta-data=/dev/myvg/mylv         isize=256    agcount=4, agsize=6400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=25600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
 
 
[root@localhost ~]# blkid
/dev/sda1: UUID="8593eb92-1b71-4f9f-9baf-cbed97462e78" TYPE="xfs"
/dev/sda2: UUID="UizqW3-bEOH-iNXT-q4c1-xfua-TTwK-FJiOMk" TYPE="LVM2_member"
/dev/sr0: UUID="2014-05-07-03-58-46-00" LABEL="RHEL-7.0 Server.x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/rhel-root: UUID="6ebb5d4b-51dd-4d9b-85b8-78b7aed37d30" TYPE="xfs"
/dev/mapper/rhel-swap: UUID="43f548d3-1ea3-4d8d-9cec-f90aef868ca1" TYPE="swap"
/dev/sdb1: UUID="r0Gwlx-9ncs-3STR-hADl-JELT-03fe-hWSD6C" TYPE="LVM2_member"
/dev/mapper/myvg-mylv: UUID="573daf95-04bc-420f-9086-c016082ce1d2" TYPE="xfs"
[root@localhost ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0             2:0    1    4K  0 disk
sda             8:0    0    5G  0 disk
├─sda1          8:1    0  500M  0 part /boot
└─sda2          8:2    0  4.5G  0 part
  ├─rhel-root 253:0    0    4G  0 lvm  /
  └─rhel-swap 253:1    0  512M  0 lvm  [SWAP]
sdb             8:16   0    5G  0 disk
└─sdb1          8:17   0    5G  0 part
  └─myvg-mylv 253:2    0  100M  0 lvm
sr0            11:0    1  3.5G  0 rom
(5)挂载使逻辑卷
[root@localhost ~]# mount /dev/myvg/mylv /dvd/
[root@localhost ~]#
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               910M     0  910M   0% /dev
tmpfs                  918M     0  918M   0% /dev/shm
tmpfs                  918M  8.6M  909M   1% /run
tmpfs                  918M     0  918M   0% /sys/fs/cgroup
/dev/mapper/rhel-root  4.0G  2.2G  1.9G  53% /
/dev/sda1              497M  100M  398M  20% /boot
/dev/mapper/myvg-mylv   97M  5.2M   92M   6% /dvd
 
5、RAID
RAID阵列概述(Redundant Arrays of Inexpensive Disks)   廉价冗余磁盘阵列
– 通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘
– 阵列的价值:提升I/O效率、硬件级别的数据冗余
– 不同RAID级别的功能、特性各不相同
5.1 RAID0
条带模式
最少使用两块磁盘;
同一个文档分散存在不同磁盘;
并行写入以提高效率;
技术图片
5.2 RAID1
镜像模式
最少使用两块磁盘;
一个文档复制成多份,分别写入不同磁盘;
多份拷贝提高可靠性,效率无提升;
技术图片
5.3 RAID01/RAID10
整合RAID0,RAID1的优势;并行存取提高效率,镜像写入提高可靠性
技术图片
5.4 RAID5
高性价比模式,至少3块磁盘
相当于RAID0和RAID1的折中方案
至少需要一块磁盘的容量来存放校验数据
技术图片

 

 

 

 

以上是关于Windows与Linux操作系统对磁盘和文件的管理方式有啥异同点(求详细)的主要内容,如果未能解决你的问题,请参考以下文章

【Linux命令】磁盘管理(逻辑卷与物理卷)

Linux磁盘管理

如何在linux系统里访问windows的磁盘共享文件

为啥Linux不需要磁盘碎片整理 –

Linux扩展分区和文件系统

一起来学linux:磁盘与文件系统: