2018-10-18 14:44:14 qq_27016363 阅读数 953

linux 查看文件系统类型
Linux 查看文件系统的方式有多种,列举如下:

  1. mount

     :~$ mount
     /dev/sda1 on / type ext4 (rw,errors=remount-ro,user_xattr)
     proc on /proc type proc (rw,noexec,nosuid,nodev)
     none on /sys type sysfs (rw,noexec,nosuid,nodev)
     none on /sys/fs/fuse/connections type fusectl (rw)
     none on /sys/kernel/debug type debugfs (rw)
     none on /sys/kernel/security type securityfs (rw)
     none on /dev type devtmpfs (rw,mode=0755)
     none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
     none on /dev/shm type tmpfs (rw,nosuid,nodev)
     none on /var/run type tmpfs (rw,nosuid,mode=0755)
     none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
     none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
     none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)
     none on /proc/fs/vmblock/mountPoint type vmblock (rw)
     binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
     gvfs-fuse-daemon on /home/kysnail/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=kysnail)
     :~$
    
  2. df

     :~$ df -lhT
     文件系统      类型    容量  已用 可用 已用% 挂载点
     /dev/sda1     ext4     19G   11G  7.8G  57% /
     none      devtmpfs    498M  248K  497M   1% /dev
     none         tmpfs    502M  252K  501M   1% /dev/shm
     none         tmpfs    502M   96K  502M   1% /var/run
     none         tmpfs    502M     0  502M   0% /var/lock
     none         tmpfs    502M     0  502M   0% /lib/init/rw
     none       debugfs     19G   11G  7.8G  57% /var/lib/ureadahead/debugfs
     :~$
    
  3. fdisk

     :~$ sudo fdisk /dev/sda
     WARNING: DOS-compatible mode is deprecated. It"s strongly recommended to
              switch off the mode (command "c") and change display units to
              sectors (command "u").
     Command (m for help): c
     DOS Compatibility flag is not set
     Command (m for help): u
     Changing display/entry units to sectors
     Command (m for help): p
     Disk /dev/sda: 21.5 GB, 21474836480 bytes
     255 heads, 63 sectors/track, 2610 cylinders, total 41943040 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 identifier: 0x00077544
        Device Boot      Start         End      Blocks   Id  System
     /dev/sda1   *        2048    40105983    20051968   83  Linux
     /dev/sda2        40108030    41940991      916481    5  Extended
     /dev/sda5        40108032    41940991      916480   82  Linux swap / Solaris
     Command (m for help): q
    
  4. file

     :~$ sudo file -s /dev/sda
     /dev/sda: x86 boot sector; partition 1: ID=0x83, active, starthead 32, startsector 2048, 40103936 sectors; partition 2: ID=0x5, starthead 254, startsector 40108030, 1832962 sectors, code offset 0x63
     kysnail@ubunkysnail:~$ sudo file -s /dev/sda1
     /dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=4942da40-8a49-4bfd-9dc2-45c906d48413 (needs journal recovery) (extents) (large files) (huge files)
     :~$
    
  5. parted

     :~$ sudo parted
     GNU Parted 2.2
     使用 /dev/sda
     欢迎使用 GNU Parted! 输入 "help"可获得命令列表.
     (parted) p                                                               
     Model: VMware, VMware Virtual S (scsi)
     磁盘 /dev/sda: 21.5GB
     Sector size (logical/physical): 512B/512B
     分区表:msdos
     数字  开始:  End     大小    类型      文件系统        标志
     1    1049kB  20.5GB  20.5GB  primary   ext4            启动
     2    20.5GB  21.5GB  938MB   extended
     5    20.5GB  21.5GB  938MB   logical   linux-swap(v1)
     (parted)                                                                  
    
  6. 查看 fstab

     # /etc/fstab: static file system information.
     #
     # Use "blkid -o value -s UUID" to print the universally unique identifier
     # for a device; this may be used with UUID= as a more robust way to name
     # devices that works even if disks are added and removed. See fstab(5).
     #
     # <file system> <mount point>   <type>  <options>       <dump>  <pass>
     proc            /proc           proc    nodev,noexec,nosuid 0       0
     # / was on /dev/sda1 during installation
     UUID=4942da40-8a49-4bfd-9dc2-45c906d48413 /               ext4    errors=remount-ro,user_xattr 0       1
     # swap was on /dev/sda5 during installation
     UUID=935fb95d-771f-448e-9d23-4820106e1783 none            swap    sw              0       0
     /dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0                                             
    
2019-05-30 21:33:14 xlsj228 阅读数 486

本文1-6部分介绍文件系统,6-8部分介绍文件类型

1、文件系统

Linux采用了树状结构的文件系统,它由目录和目录下的文件一起构成。使用单一的根目录结构,所有的分区都挂载到单一的“/”目录上,其结构示意图如图所示。

“/”目录也称为根目录,位于Linux文件系统目录结构的顶层。

2、系统目录

/ Linux系统的根目录,包含Linux系统的所有目录和文件
/etc 有关系统设备与管理的配置文件
/sbin 存放系统启动时所需的运行程序
/bin 该目录中含有常用的命令文件,不能包含子目录
/boot 操作系统启动时的核心文件
/usr/local 存放用户后期安装的应用程序文件
/root 超级用户主目录
/dev 接口设备文件目录,保存外围设备代号
/mnt

设备文件的挂接点,默认有/mnt/cdrom和/mnt/floppy两个目录,分别用于挂载光驱和软驱

 

/home 用户的宿主目录,通常将其设置在独立的分区
   

 3、存储设备的命名

在Linux中,对于IDE磁盘,使用“hd”表示,并且在“hd”之后使用小写字母表示磁盘编号,磁盘编号之后是分区编号,使用阿拉伯数字表示。主分区的编号依次是1~4,而扩展分区上的逻辑分区编号从5开始。而SATA和SCSI磁盘共同使用“sd”表示。                常用存储设备的名称表示如左图所示。

4、分区管理

disk工具中常用的命令及含义如图所示:

  常用的磁盘分区管理工具有fdisk和parted,它们都可以进行创建分区、删除分区、查看分区信息等基本操作,此外parted还可以调整已有分区的尺寸。                                  我们以fdisk为例,启动fdisk:                                                                                        root# fdisk /dev/sda                  (/dev/sda是用户要进行分区的磁盘设备名)

5、文件系统的建立

要想在分区上存储数据,首先需要建立文件系统。常用的建立文件系统的命令有mkdosfs、mkfs.vfat和mkfs。

1) mkdosfs命令
该命令用于在磁盘或分区中建立dos文件系统,即FAT文件系统,其格式如下:
mkdosfs  [选项]  磁盘设备文件名

2) mkfs.vfat命令
该命令用于在磁盘或分区中建立FAT32文件系统,其基本使用格式如下:
mkfs.vfat [选项] 磁盘设备文件名

3)

3) mkfs命令
该命令允许根据用户的选择建立相应的文件系统,同mkdosfs、mkfs.vfat等命令类似,但功能更强大。其格式如下:
mkfs  [选项]  磁盘设备文件名 [块大小]

6、文件系统的挂载

Linux系统中,文件系统创建后,还需将其安装到Linux目录树的某个位置上才能使用,这个过程称为挂载,文件系统所挂载到的目录称为挂载点。文件系统使用完毕,还可对其进行卸载。

1)    挂载文件系统

文件系统的挂载,可以在系统引导过程中自动加载,也可以使用命令手工挂载。我们介绍使用命令手工挂载:
挂载文件系统的命令为mount,该命令语法如下:
mount  [选项]  [设备文件名]  [挂接点]

2) 卸载文件系统

如果系统已挂接的磁盘不再使用,为了节省系统资源,可以将该磁盘从系统中卸下。

卸载文件系统使用umount命令,其格式如下:
umount  [选项]  设备文件名或挂接目录

注意:umount通常不能卸载正在使用的文件系统。如果必须卸载可以使用-f参数,或重启系统。

7.Linux的文件类型

Linux系统中,文件的命名必须遵循如下的规则:

(1) 文件名最长可以达到256个字符,可由A~Z、a~z、0~9、.、-、_、等符号组成。
(2) 文件名区分大小写。
(3) 文件没有扩展名的概念。
(4) 使用“/”作为根目录和目录层之间的分隔符。
(5) 支持相对路径和绝对路径。

Linux系统中,文件的属性

在Linux操作系统中也必须区分文件类型,通过文件类型可以判断文件属于可执行文件、文本文件还是数据文件。在Linux系统中文件可以没有扩展名。
文件类型都是和应用程序相关联的,在打开某个文件时,操作系统会自动判断用那个应用程序打开,在Linux系统中,.txt文件由gedit程序打开,.doc文件由OpenOffice.org Writer应用程序打开。在Windows下文件是否被执行也取决于扩展名,而Linux下的扩展名只能表示程序的关联,是否被执行取决于文件属性。

8、文件类型
通常,Linux系统中常用的文件类型有5种:普通文件、目录文件、设备文件、管道文件和链接文件。

1) 普通文件
普通文件是计算机操作系统用于存放数据、程序等信息的文件,一般都长期存放于外存储器(磁盘、磁带等)中。

2) 目录文件
Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。

3)设备文件
Linux系统把每个设备都映射成一个文件,这就是设备文件,它是用于向I/O设备提供连接的一种文件,分为字符设备和块设备文件。

4)管道文件
管道文件也是Linux中较特殊的文件类型,这类文件多用于进程间的通信方面。

5)链接文件
链接文件有两种,一种是符号链接,也称为软连接,一种是硬链接。

9、本文部分总结于以下内容,完整内容查看下面网址

https://wenku.baidu.com/view/041a5a7d5acfa1c7aa00cc53.html

 

 

 

 

 

 

2020-03-11 21:43:36 huanqingdong 阅读数 62

1. 文件系统是啥

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。

— 百度百科

百科解释有点太专业,实际上就是一个帮助操作系统完成文件存储、检索、管理等功能的软件。

2. 基本的Linux文件系统

2.1 ext文件系统

Linux系统中最早引入的文件系统叫扩展文件系统(extended filesystem,简称ext)。它使用虚拟目录来操作硬件设备(一切皆文件),在物理设备上用订场的块存储数据。
ext将磁盘分成两部分:

  • inode区(inode table)
    inode已节点号区分,存放文件属性信息,例如名称、大小、访问权限、指向数据区块的指针
  • 数据区
    按块存储文件数据

2.2 ext2文件系统

对ext进行提升

  • 单文件上限从2G提升至2T(后期版本32T)
  • inode中增加了文件创建时间,修改时间、最后访问时间
  • 按组分配磁盘块,减轻碎片化

ext2文件系统缺陷
由于采用先将文件写入数据区,再更新或添加inode信息,这两步并没有事务保证,因此会存在inode区和数据区会存在数据不一致的情况,导致文件系统崩溃。

3. 日志文件系统

日志文件系统先将文件的更改写入到临时文件(称作日志, journal)中。在数据成功写到存储设备和索引节点表之后,再删除对应的日志条目。如果系统在数据被写入存储设备之前崩溃或断电了,日志文件系统下次会读取日志文件并处理上次留下的未写入的数据。
Linux中有3种广泛使用的日志方法,每种的保护等级都不相同
数据模式
索引节点和文件都会被写入日志;丢失数据风险低,但性能差
有序模式
只有索引节点数据会被写入日志,但只有数据成功写入后才删除;在性能和安全性之间取得了良好的折中
回写模式
只有索引节点数据会被写入日志,但不控制文件数据何时写入;丢失数据风险高,但仍比不用日志好

3.1 ext3文件系统

2001年引入Linux内核中,较ext2提升为每个存储设备添加一个日志文件,默认采用有序模式的日志功能,模式可通过命令进行修改。

3.2 ext4文件系统

2008年受Linux官方内核支持
较ext3提升

  • 支持数据压缩和加密
  • 支持区段(extent)的特性
    区段在存储设备上按块分配空间,但在索引节点表中只保存起始块的位置。由于无需列出所有用来存储文件中数据的数据块,它可以在索引节点表中节省一些空间。
  • 引入了块预分配技术( block preallocation)

3.3 XFS文件系统

美国硅图公司( SGI)最初在1994年为其商业化的IRIX Unix系统开发了XFS。 2002年,它被发布到了适用于Linux环境的版本。
XFS文件系统采用回写模式的日志,在提供了高性能的同时也引入了一定的风险,因为实际数据并未存进日志文件。 XFS文件系统支持在线调整文件系统的大小,但只能扩大不能缩小

4.写时复制文件系统

写时复制(copy-on-write,COW)
COW利用快照兼顾了安全性和性能。如果要修改数据,会使用克隆或可写快照。修改过的数据并不会直接覆盖当前数据,而是被放入文件系统中的另一个位置上。即便是数据修改已经完成,之前的旧数据也不会被重写。

4.1 ZFS文件系统

ZFS是由Sun公司于2005年研发的,用于OpenSolaris操作系统,从2008年起开始向Linux移植,最终在2012年投入Linux产品的使用。
ZFS是一个稳定的文件系统,与Resier4、 Btrfs和ext4势均力敌。它最大的弱项就是没有使用GPL许可。自2013年发起的OpenZFS项目有可能改变这种局面。但是,在获得GPL许可之前, ZFS有可能终无法成为Linux默认的文件系统

4.2 Btrf文件系统

Btrfs文件系统是COW的新人,也被称为B树文件系统。它是由Oracle公司于2007年开始研发的。 Btrfs在Reiser4的诸多特性的基础上改进了可靠性。另一些开发人员最终也加入了开发过程,帮助Btrfs快速成为了最流行的文件系统。究其原因,则要归于它的稳定性、易用性以及能够动态调整已挂载文件系统的大小。 OpenSUSE Linux发行版最近将Btrfs作为其默认文件系统。除此之外,该文件系统也出现在了其他Linux发行版中(如RHEL),不过并不是作为默认文件系统。

2018-05-08 10:54:06 matengbing 阅读数 80

Linux文件系统

	1. 根文件系统(rootfs):

		root filesystem

	2. LSB,FHS:(fileSystemHeirache Standard)

		/etc,/usr,/var,/root,/dev,/home

		/boot:引导文件存放目录,内核文件(vmlinuz),引导加载器(bootloader grub)都存放在此目录。

		/bin:供所有用户使用的基本命令,不能关联至独立分区,OS启动即会用到的程序。

		/sbin:管理类的命令,不能关联至独立分区,OS启动即会用到的程序。

		/lib:基本共享库文件,以及内核模块文件(/lib/modules)。

		/lib64:专用户x86_64系统上的共享库文件存放位置。

		/etc:配置文件目录(纯文本文件)。

		/home/USERNAME:普通用户家目录。

		/root:管理员的家目录。

		/media:便携式移动设备挂载点

           cdrom

		   usb

		/mnt:临时文件系统挂载点。

		/dev:设备文件以及特殊文件存储位置

		/srv:系统上运行的服务用到的数据。

		/usr:universal shared,read-only data。

            bin:保证系统拥有完整总跟那个而提供的应用程序。

            sbin:

            lib64:

            include:(程序的头文件(headerfiles))。

            share:结构化独立的数据,例如doc,man等。

		local:第三方应用程序的安装位置。

            bin,sbin,lib,lib64,etc,share

 

		/var:variable data files:

            cache:用用程序缓存数据目录。

            lib:应用程序状态信息数据。

            local:专用于为/usr/local下的应用程序存储进程的pid文件。

            lock:锁文件

            log:日志文件及目录。

            opt:专用于为/opt下的应用程序存储可变数据。

            run:运行中的进程相关数据:通常用于存储进程中的pid文件。

            spool:应用程序数据池。

            tmp:保存系统两次重启之间产生临时数据。

		/proc:用于输出内核与进程信息相关的虚拟文件系统。

		/sys:用于输出当前系统上硬件设置相关信息的虚拟文件系统。

		/selinux:security enhanced linux ,selinux相关的安全策略等信息的存储位置。

	linux上的应用程序的组成部分:

         二进制程序:/bin,/sbin,/usr/bin,/usr/local/bin,/usr/local/sbin

         库文件:/lib/usr/lib/usr/lib64,/usr/local/lib,/usr/local/lib64

	配置文件:/etc,/etc/DIRCTORY,/USR/local/etc

         帮助文件:/usr/share/man,/usr/share/doc,usr/local/share/man.usr/local/share/doc

	linux下的文件类型:

         -(f):普通文件

         d:目录文件

         b:块设备

         c:字符设备

         l:符号链接文件

         p:管道文件

         s:套接字文件:socket

	系统管理类命令:

         关机:halt,poweroff,shutdown,init 0

         重启:reboot,shutdown,init6

         根跟用户登录相关:

                   who,shoami,w

         关机或重启:

                   half,poweroff

                   reboot

                        -f:强制,不调用shundown

                        -p:切断电源

                   shutdown:

			shutdown [OPTION]… TIME [MESSAGE]

                            -r:reboot

                            -h:half

                            -c:calcel

                            TIME:

				now:立刻

                                +m:相对时间表示法:从命令提交开始多久之后,例如 +3

                                hh:mm绝对时间表示法,知名具体时间             

		 用户登录信息查看命令:

             whoami:显示当前登录有效用户。

             who:系统当前所有的登录会话。

             w:系统当前所有的登录会话及所做的操作。

2018-05-31 16:30:06 wnn_0919 阅读数 3293

文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构; 即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区

一个分区或磁盘能作为文件系统使用前,需要初始化,并将记录数据结构写到磁盘上。这个过程就叫建立文件系统

 

种类

1 ext2与ext3是linux专门设计的硬盘文件系统一般称为扩展文件系统。Ext3增加了日志记录功能。

fdisk 分区在终端会显示打印信息   mkfs.ext4 /dev/XXX

sfdisk [options] device 可以直接执行分区

2 swap文件系统

用于linux的交换分区,用来提供虚拟内存,一般为物理内存的2倍。由操作系统自行管理

3  vfat

是linux对DOS,windows系统下的FAT文件系统的一个统称

4  NFS文件系统

即网络文件系统,用于系统间通过网络进行文件共享,

不能建立在flash上,只能建立在硬盘上。

5  ISO 9660文件系统

光盘使用的标准文件系统,

6 jffs2文件系统

JFFS2是一个可读写的、压缩的、日志型文件系统,并提供了崩溃/掉电安全保护,克服了JFFS的一些缺点:使用了基于哈希表的日志节点结构,大大加快了对节点的操作速度;支持数据压缩;提供了写平衡支持;支持多种节点类型;提高了对闪存的利用率,降低了内存的消耗。这些特点使JFFS2文件系统成为目前Flash设备上最流行的文件系统格式,它的缺点就是当文件系统已满或接近满时,JFFS2运行会变慢,这主要是因为碎片收集的问题

它是在闪存上使用非常广泛的读/写文件系统

方法一:

mkfs.jffs2 –r rootfs –o rootfs.bin –pad=0x1000000 –e=0x20000 –n

将rootfs制作为jffs2镜像文件并拷贝到/tftpboot烧写

--pad指定最终的jffs2镜像被填充的大小,若不用该选项制作的可能不是页对其的  -e 指定擦除的大小, 

jffs2文件系统烧写

#tftp 30008000 filesys.jffs2

#nand erase 200000 800000 (根文件系统所在的分区,kernel启动的时候有显示)

#nand write 30008000 200000 800000   (nand write 下载的地址 偏移地址 大小)

方法二:

mount –t jffs2 /dev/mtdblock1 /mnt;  将块设备直接挂在成jffs2格式

tar zxvf rootfs.ta.gz  -C  /mnt

umount /dev/mtdblock1

7、ubifs文件系统

 无排序区块图像文件系统是用于固态硬盘存储设备上UBIFS 支持 write-back, 其写入的数据会被cache, 直到有必要写入时才写到flash, 大大地降低分散小区块数量并提高I/O效

mkfs.ubifs –m 2048 –c 2048 –e 126976 –r rootfs –o rootfs.bin

将rootfs制作成ubifs镜像文件rootfs.bin并拷贝到/tftpboot下下载烧写

-r 要制作的镜像的根文件系统的路径

-m 最小的I/O操作的大小

-e 擦除块的大小

-p 物理擦除块的大小

-c 最大逻辑擦除块的数量

-o 最终制作成的根文件镜像的文件名

8、yaffs文件系统

YAFFS/YAFFS2是一种和JFFSx类似的闪存文件系统,它是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。和JFFS2相比它减少了一些功能,所以速度更快,而且对内存的占用比较小。此外,YAFFS自带NAND芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的API,用户可以不使用Linux中的MTDVFS,直接对文件系统操作。YAFFS2支持大页面的NAND设备,并且对大页面的NAND设备做了优化。JFFS2NAND闪存上表现并不稳定,更适合于NOR闪存,所以相对大容量的NAND闪存,YAFFS是更好的选择 

专门为NAND Flash存储器设计的嵌入式文件系统,适用于大容量的存储设备,以固定大小的数据块进行存储的,块的大小可以是512字节、1 024字节或者2 048字节  制作yaffs文件系统 

mkyaffs2image  rootf  rootf_yaffs.bin

烧写到yaffs2根文件系统到NandFlash这种方法是不可行的

要用用mount成yaffs格式,在解压到该目录下。

 

1)启动U-boot,修改启动参数

setenv bootargs noinitrd root=/dev/mtdblock2 rootfstype=yaffs2 rw console=ttySAC0,115200 init=/linuxrc mem=64M

2)setenv bootcmd nand read.jffs2 32000000 100000 0x350000 && bootm 0x32000000

 

 

文件系统的烧写

文件系统的烧写,可以通过与内核相似的方法使用串口烧写,也可以通过挂载nfs使用mtd_debug 工具烧写,由于文件系统较大,使用第一种方式会慢一些。

串口烧写使用到的命令

loady

nand erase 0x600000 0x3a00000(目前的分区情况)

nand write 0x30001000 0x600000 0x800000(实际大小)

使用nfs烧写用到的命令

 mtd_debug erase /dev/mtd2 0 0x3a00000

 mtd_debug write /dev/mtd2 0 0x800000 ubi.img

 

Linux 文件系统类型

阅读数 915

没有更多推荐了,返回首页