Linux 创建文件系统及挂载文件系统详解
initramfs初始化过程 -回复
initramfs初始化过程-回复标题:Linux内核启动流程详解——Initramfs的初始化过程一、引言在Linux系统启动过程中,Initramfs(Initial RAM file system)扮演着非常重要的角色。
它是一个临时的根文件系统,用于引导加载程序加载Linux内核并完成初始化工作。
本文将详细介绍Initramfs的初始化过程。
二、什么是InitramfsInitramfs是Linux内核的一项功能,它允许将一个小型的CPIO格式的文件系统映射到内存中,并作为系统的初始根文件系统。
这样,在内核初始化阶段,就可以访问到一些必要的驱动和工具,以便完成磁盘设备的识别、挂载以及进一步的系统初始化工作。
三、Initramfs的创建在实际操作中,我们通常会使用mkinitcpio这个工具来生成Initramfs镜像。
以下是具体的步骤:1. 首先,我们需要配置mkinitcpio.conf文件,指定需要包含在Initramfs中的模块和脚本。
2. 然后,运行mkinitcpio命令,传入目标内核版本和要生成的Initramfs 文件名作为参数。
3. 最后,更新grub.cfg文件,将新生成的Initramfs文件添加到内核启动参数中。
四、Initramfs的加载与解压当计算机启动时,BIOS会加载引导加载程序(如GRUB),然后引导加载程序会加载Linux内核和Initramfs镜像。
内核在初始化阶段会找到Initramfs,并将其解压到内存中,形成一个临时的根文件系统。
五、Initramfs的工作原理Initramfs的主要任务是在真正的根文件系统被挂载之前,提供必要的驱动和工具,以便完成以下工作:1. 设备识别:通过udev或者mdev识别并挂载设备。
2. 文件系统识别:根据/etc/fstab文件,识别并挂载文件系统。
3. 用户空间初始化:执行/sbin/init程序,开始用户空间的初始化工作。
实验二--文件系统及磁盘管理
实验二文件系统及磁盘管理1。
文件系统管理一、实验目的●掌握Linux下文件系统的创建、挂载与卸载.●掌握文件系统的自动挂载。
二、项目背景某企业的Linux服务器中新增了一块硬盘/dev/sdb,请使用fdisk命令新建/dev/sdb1主分区和/dev/sdb2扩展分区,并在扩展分区中新建逻辑分区/dev/sdb5,并使用mkfs命令分别创建vfat和ext3文件系统。
然后用fsck命令检查这两个文件系统;最后,把这两个文件系统挂载到系统上。
三、实验内容练习Linux系统下文件系统的创建、挂载与卸载及自动挂载的实现。
四、实验步骤子项目1.创建/dev/sdb1和/dev/sdb5●使用fdisk命令创建/dev/sdb1主分区。
●使用fdisk命令创建/dev/sdb2扩展分区.●使用fdisk命令创建/dev/sdb5逻辑分区。
●输入子命令w,把设置写入硬盘分区表,退出fdisk并重新启动系统。
●用mkfs命令在上述刚刚创建的分区上创建ext3文件系统和vfat文件系统。
●用fsck命令检查上面创建的文件系统.子项目2.挂载/dev/sdb1和/dev/sdb5●利用mkdir命令,在/mnt目录下建立挂载点,mountpoint1和mountpoint2。
●把上述新创建的ext3分区挂载到/mnt/mountpoint1上。
●把上述新创建的vfat分区挂载到/mnt/mountpoint2上.●利用mount命令列出挂载到系统上的分区,查看挂载是否成功。
●利用umount命令卸载上面的两个分区。
子项目3.实现/dev/sdb1和/dev/sdb5的自动挂载●编辑系统文件/etc/fstab文件,把上面两个分区加入此文件中.●重新启动系统,显示已经挂载到系统上的分区,检查设置是否成功.子项目4.挂载光盘和U盘●取一张光盘放入光驱中,将光盘挂载到/media/cdrom目录下.查看光盘中的文件.●利用与上述相似的命令完成U盘的挂载与卸载。
Linux kernel文件系统介绍
struct file_system_type{}(续)
• 根据文件系统所在的物理介质和数据在物 理介质上的组织方式来区分不同的文件系 统类型的。 • file_system_type结构用于描述具体的文件 系统的类型信息。被Linux支持的文件系统, 都有且仅有一个file_system_type结构而不 管它有零个或多个实例被安装到系统中。
•
超级块对象(续)
• struct super_operations { //超级块方法 …… //该函数在给定的超级块下创建并初始化一个新的索引 节点对象 struct inode *(*alloc_inode)(struct super_block *sb); …… //该函数从磁盘上读取索引节点,并动态填充内存中对 应的索引节点对象的剩余部分
linuxkernel文件系统介绍苏国立sict20081119目录?文件系统在os中位置?一切皆文件?vfs中的数据结构?注册文件系统?挂载文件系统?sysopensysread?其它文件系统在os中位置?ห้องสมุดไป่ตู้程管理?内存管理?文件系统?设备管理一切皆是文件?一切皆是文件是unixlinux的基本哲学之一
Linux Kernel 文件系统介绍
苏国立@sict 2008-11-19
目录
• • • • • • • 文件系统在OS中位置 一切皆文件 VFS中的数据结构 注册文件系统 挂载文件系统 sys_open() & sys_read() 其它
文件系统在OS中位置
• • • • 进程管理 内存管理 文件系统 设备管理
– 磁盘文件系统
• • • • • • • Linux:Ext2, Ext3, Ext4, ReiserFS Unix: UFS, MINIX, MS: MS-DOS, VFAT, NTFS ISO9660 Apple: HFS IBM: JFS SGI: XFS
linux中的磁盘的操作步骤
linux中的磁盘的操作步骤Linux中的磁盘的操作步骤磁盘是计算机中存储数据的重要硬件设备之一,对于Linux系统来说,磁盘的操作是非常常见和重要的。
本文将介绍Linux中磁盘的操作步骤,包括磁盘的查看、挂载、格式化、分区和扩容等操作。
1. 查看磁盘信息在Linux系统中,可以使用命令来查看磁盘信息。
常用的命令有:- fdisk -l:列出系统中所有的磁盘和分区信息;- df -h:查看磁盘的使用情况和剩余空间;- lsblk:以树状结构展示磁盘和分区的关系。
2. 挂载磁盘在Linux中,需要将磁盘挂载到文件系统中才能使用。
挂载的步骤如下:- 创建挂载点:可以在文件系统中选择一个目录作为挂载点;- 查看磁盘分区:使用fdisk -l命令查看磁盘的分区信息;- 挂载磁盘分区:使用mount命令将磁盘分区挂载到指定的挂载点。
3. 格式化磁盘在使用磁盘之前,需要对其进行格式化,以便文件系统能够识别和管理磁盘上的数据。
常用的格式化命令有:- mkfs.ext4:格式化为ext4文件系统;- mkfs.xfs:格式化为xfs文件系统;- mkfs.ntfs:格式化为ntfs文件系统。
4. 分区磁盘在Linux中,可以将磁盘分为多个分区来管理数据。
分区的步骤如下:- 使用fdisk命令对磁盘进行分区操作;- 使用mkfs命令对分区进行格式化;- 使用mount命令将分区挂载到文件系统中。
5. 扩容磁盘当磁盘空间不足时,可以对磁盘进行扩容以增加存储容量。
扩容的步骤如下:- 在虚拟机或物理机中扩大磁盘的容量;- 使用fdisk命令对磁盘进行分区扩容;- 使用resize2fs或xfs_growfs命令对文件系统进行扩容。
总结:本文介绍了Linux中磁盘的操作步骤,包括磁盘的查看、挂载、格式化、分区和扩容等操作。
通过掌握这些操作,可以更好地管理和利用系统中的磁盘空间,提高系统的性能和稳定性。
在实际应用中,需要根据具体情况选择合适的命令和参数进行操作,并注意备份重要数据,以免造成数据丢失。
linux创建文件系统的步骤。
linux创建文件系统的步骤
1. 确认磁盘分区:使用fdisk或parted等工具对磁盘进行分区,确保分区正确。
2. 格式化分区:使用mkfs命令对分区进行格式化,例如:mkfs.ext4 /dev/sda1。
3. 挂载分区:使用mount命令将分区挂载到指定的挂载点上,例如:mount /dev/sda1 /mnt。
4. 配置/etc/fstab文件:将分区的挂载信息添加到/etc/fstab 文件中,以便系统在启动时自动挂载。
5. 设置权限:使用chmod和chown命令设置文件系统的权限和所有者。
6. 创建目录:使用mkdir命令创建需要的目录。
7. 配置文件系统:根据需要,可以使用tune2fs等工具对文件系统进行配置,例如:tune2fs -c 10 /dev/sda1,表示每10次挂载后进行一次文件系统检查。
8. 测试文件系统:使用df和du等命令检查文件系统的使用情况,确保文件系统正常工作。
Linux磁盘的手动挂载和自动挂载实现详解
Linux磁盘的⼿动挂载和⾃动挂载实现详解硬盘分区并格式化好以后,就能在Linux系统上使⽤了,使⽤之前需要挂载到对应的⽬录上⾯去。
⼿动挂载将/dev/sdc1挂载到 /mnt⽬录上⾯去,挂载完成后,使⽤df -h命令查看挂载信息1、⼿动挂载命令sudo mount /dev/sdc1 /mnt2、测试⼀下这个分区是否可以正常使⽤,我们往⾥⾯写⼊⼀个10g的⼤⽂件,然后再使⽤df -h命令查看硬盘的使⽤情况命令:sudo dd if=/dev/zero of=/mnt/testfile bs=100M count=100⾃动挂载⾃动挂载使⽤的是⽂件/etc/fstab,需要修改系统的⾃动挂载⽂件 /etc/fstab。
不过要⼩⼼这个⽂件会影响系统的启动,因为系统就是依赖这个⽂件决定启动时加载的⽂件系统的1、查看⾃动挂载⽂件[root@localhost mytest]# vi /etc/fstab2、添加挂载信息/dev/sdc1 /mnt xfs defaults 0 0格式说明:1)根⽬录/必须载⼊,⽽且要先于其他载⼊点被载⼊2)其他载⼊点必须为已建⽴的⽬录3)若进⾏卸载,必须先将⼯作⽬录移到载⼊点及其⼦⽬录之外3、保存退出,等重启服务器就可以⽣效了sudo reboot这个⽂件共有 6 个字段,第个字段的意思如下:第⼀个字段:分区设备⽂件名或 UUID(硬盘通⽤唯⼀识别码,可以理解为硬盘的 ID)。
第⼆个字段:挂载点。
再强调⼀下,挂载点应该是已经建⽴的空⽬录。
第三个字段:⽂件系统名称,CentOS 6.3 的默认⽂件系统应该是 ext4。
第四个字段:挂载参数,这个参数和 mount 命令的挂载参数⼀致。
第五个字段:指定分区是否被 dump 备份,0 代表不备份,1 代表备份,2 代表不定期备份。
第六个字段:指定分区是否被 fsck 检测,0 代表不检测,其他数字代表检测的优先级,1 的优先级⽐ 2 ⾼。
linux设置开机自动挂载文件系统
linux设置开机⾃动挂载⽂件系统⼀、/etc/ 下增加rc.local⽂件(ubuntu默认没有这个⽂件)1kuaibang@face:~$ sudo touch rc.local⼆、安装NFS客户端a、如果您使⽤CentOS、Redhat、Aliyun Linux操作系统,请执⾏以下命令。
1sudo yum -y install nfs-utilsb、如果您使⽤Ubuntu或Debian操作系统,请执⾏以下命令。
1sudo apt-get updatesudo apt install nfs-common三、编辑⽂件,增加⾃动挂载或开机⾃启命令a、使⽤NFS v3协议挂载⽂件系统:1sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport :/ /mnt b、使⽤NFS v4协议挂载⽂件系统:1sudo mount -t nfs -o vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport ://mntc、如果您使⽤的是极速型NAS,请执⾏以下命令:1sudo mount -t nfs -o vers=3,nolock,noacl,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-:/share /mnt本地配置如下:1 2 3 4kuaibang@face:~$ sudo nano /etc/rc.local#!/bin/sh<br>sudo mount -t nfs -o vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 192.168.1.xxx:/home /mnt sudo docker start $(docker ps -a -q)exit 0挂载命令中的参数说明:⽂件系统版本。
linux的mount(挂载)NFS共享,命令详解
linux的mount(挂载)NFS共享,命令详解下挂载(mount)光盘镜像⽂件、移动硬盘、U盘、Windows和NFS⽹络共享linux是⼀个优秀的开放源码的,可以运⾏在⼤到巨型⼩到掌上型各类计算机上,随着 linux系统的⽇渐成熟和稳定以及它开放源代码特有的优越性,linux在全世界得到了越来越⼴泛的应⽤。
现在许多企业的计算机都是由UNIX系统、Linux系统和Windows系统组成的混合,不同之间经常需要进⾏数据交换。
下⾯我根据⾃⼰的实际⼯作经验介绍⼀下如何在linux系统下挂接(mount)光盘镜像⽂件、移动硬盘、U盘以及Windows⽹络共享和UNIX NFS⽹络共享。
挂接命令(mount) ⾸先,介绍⼀下挂接(mount)命令的使⽤,mount命令参数⾮常多,这⾥主要讲⼀下今天我们要⽤到的。
命令格式: mount [-t vfstype] [-o options] device dir 其中: 1.-t vfstype 指定⽂件的类型,通常不必指定。
mount 会⾃动选择正确的类型。
常⽤类型有: 光盘或光盘镜像:iso9660 DOS fat16⽂件:msdos Windows 9x fat32⽂件:vfat Windows NT ntfs⽂件:ntfs Mount Windows⽂件共享:smbfs UNIX(LINUX) ⽂件共享:nfs 2.-o options 主要⽤来描述设备或档案的挂接⽅式。
常⽤的参数有: loop:⽤来把⼀个⽂件当成硬盘分区挂接上 ro:采⽤只读⽅式挂接设备 rw:采⽤读写⽅式挂接设备 iocharset:指定访问⽂件所⽤字符集 3.device 要挂接(mount)的设备。
4.dir设备在上的挂接点(mount point)。
挂接光盘镜像⽂件 由于近年来磁盘的巨⼤进步,新的电脑都配备了⼤容量的磁盘,在Windows下许多⼈都习惯把软件和资料做成光盘镜像⽂件通过虚拟光驱来使⽤。
文件系统加载过程
linux文件系统初始化过程(1)---概述术语表:struct task:进程struct mnt_namespace:命名空间struct mount:挂载点struct vfsmount:挂载项struct file:文件struct super_block:超级块struct dentry:目录struct inode:索引节点一、目的linux文件系统主要分为三个部分:文件系统调用;虚拟文件系统(VFS);挂载到VFS 的实际文件系统。
其中,VFS是核心,linux文件系统的本质就是在内存中创建一棵VFS树。
当根目录被创建后,用户就可以使用系统调用在VFS上创建文件、删除文件、挂载各种文件系统等操作。
该系列文章主要分析linux3.10文件系统初始化过程,分为三个阶段:1、挂载根文件系统(rootfs);2、加载initrd;3、挂载磁盘文件系统;二、常用数据结构linux文件系统中重要的数据结构有:文件、挂载点、超级块、目录项、索引节点等。
每个数据结构的具体实现请参见源代码,这里不再描述。
为了直观的表示数据结构之间的关系,请参见图1:图中含有两个文件系统(红色和绿色表示的部分),并且绿色文件系统挂载在红色文件系统tmp目录下。
一般来说,每个文件系统在VFS层都是由挂载点、超级块、目录和索引节点组成;当挂载一个文件系统时,实际也就是创建这四个数据结构的过程,因此这四个数据结构的地位很重要,关系也很紧密。
由于VFS要求实际的文件系统必须提供以上数据结构,所以不同的文件系统在VFS层可以互相访问。
如果进程打开了某个文件,还会创建file(文件)数据结构,这样进程就可以通过file来访问VFS的文件系统了。
另外,该图只给出了主要的关系结构,忽略了部分细节。
图1三、函数调用关系图2描述了文件系统初始化过程中主要的函数调用关系。
linux文件系统初始化过程主要分为三个阶段:1、vfs_caches_init()负责挂载rootfs文件系统,并创建了第一个挂载点目录:'/';2、rest_init()负责加载initrd文件,扩展VFS树,创建基本的文件系统目录拓扑;3、init程序负责挂载磁盘文件系统,并将文件系统的根目录从rootfs切换到磁盘文件系统;图2四、总结linux文件系统初始化过程主要分为三个阶段:挂载rootfs,提供第一个挂载点''/;加载initrd,扩展VFS树;执行init程序,完成linux系统的初始化。
linux安装挂载点详解
我们已经知道,每一个 linux 都有一个内核(vmlinuz),我们在这个内核上添加可以完成各 种特定功能的模块,每个模块就体现在 linux 中各种不同的目录上。当然,各种不同的发行 套件,其目录有细小的差别,但主要结构都是一样的。我们还要将 linux 的功能模块和各种 应用程序结 合起来,这样,才能使你的 linux 系统为你服务。在/vmlinuz 目录下存放的就是 系统的内核。还记得我们在配置 lilo 时,提到过这个内核吗?
/home
如果我们建立一个用户,用户名是"xx",那么在/home 目录下就有一个对应的/home/xx 路径, 用来存放用户的主目录。
/usr/local
如果 linux 用作服务器,那么通常需要安装大量的软件。
分区实例
1‐4 为主分区或者扩展分区,5 之后为逻辑分区
分区名 挂装点 文件系统 大小 作用
/dev
dev 是设备(device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包 含了所有 linux 系统中使用的外部设备。但是这里并不是放的外 部设备的驱动程序。这一点 和我们常用的 windows, dos 操作系统不一样。它实际上是一个访问这些外部设备的端口。我 们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。例如: 我 们在系统中键入:cd /dev/cdrom 我们就可以看到光驱中的文件了。同样道理,我们键入: cd /dev/mouse 就可以看看鼠标的相关文件。在这个目录下,有一个 null 设备,这个东西本 身没有任何意义。如果你向这个目录写入文件或内容,他们统统有去无回。
/opt
略
/initrd
简述linux的文件系统结构
简述linux的文件系统结构
Linux的文件系统结构是一个层次结构,从根目录(/)开始,每个目录都可以包含文件和子目录。
下面是主要目录的简要说明:
·/bin - 包含系统中最基本的命令(例如cp、ls、mv、rm等)。
·/boot - 包含用于启动系统的文件,如内核、引导装载程序等。
·/dev - 包含设备文件,如磁盘、键盘、鼠标等硬件设备。
·/etc - 包含系统的配置文件。
·/home - 包含所有用户的主目录。
·/lib - 包含与系统运行有关的库文件,如动态链接库。
·/media - 包含可插入媒体(如CD-ROM、DVD、USB驱动器等)的挂载点。
·/mnt - 包含临时挂载的文件系统。
·/opt - 用于安装附加软件包。
·/proc - 动态映射到正在运行的进程,系统信息等。
·/root - 管理员的主目录。
·/sbin - 包含系统管理员使用的系统命令和实用程序。
·/tmp - 用于存储临时文件。
·/usr - 包含用户安装的应用程序和文件。
·/var - 用于存储程序数据和日志文件。
linux常用的50个命令
理解您可能需要一些常用的Linux 命令,以下是一些常见的Linux 命令,它们可以帮助您在终端中进行文件操作、系统管理等任务:1. ls:列出目录中的文件和子目录2. cd:切换目录3. pwd:显示当前工作目录的路径4. mkdir:创建新目录5. rmdir:删除空目录6. touch:创建空文件或更新文件的时间戳7. cp:复制文件或目录8. mv:移动文件或目录9. rm:删除文件或目录10. cat:连接文件并打印到标准输出设备11. more:逐屏显示文件内容12. less:逐屏显示文件内容,支持向前翻页13. head:显示文件的开头几行14. tail:显示文件的末尾几行15. grep:在文件中查找匹配的文本16. find:在文件系统中查找文件17. tar:归档和提取文件18. gzip:压缩文件19. gunzip:解压文件20. ps:显示当前进程状态21. top:显示系统中正在运行的进程22. kill:终止进程23. ifconfig:显示或配置网络接口24. ping:测试主机到目标主机的连通性25. ssh:安全登录远程主机26. scp:安全复制文件到远程主机27. wget:从网络下载文件28. df:显示磁盘空间使用情况29. du:显示目录或文件的磁盘使用情况30. mount:挂载文件系统31. umount:卸载文件系统32. passwd:更改用户密码33. useradd:创建新用户34. userdel:删除用户35. usermod:修改用户属性36. groupadd:创建新用户组37. groupdel:删除用户组38. groupmod:修改用户组属性39. chown:修改文件所有者40. chmod:修改文件权限41. su:切换用户42. sudo:以超级用户权限执行命令43. history:显示最近执行的命令历史44. alias:创建命令别名45. date:显示或设置系统时间46. uptime:显示系统运行时间和负载47. who:显示当前登录用户信息48. shutdown:关闭系统49. reboot:重新启动系统50. exit:退出当前会话这些是一些常见的Linux 命令,可以帮助您进行文件操作、系统管理等任务。
Linux系统中的mount挂载磁盘命令使用教程
Linux系统中的mount挂载磁盘命令使⽤教程功能:加载指定的⽂件系统。
语法:mount [-afFhnrvVw] [-L<标签>] [-o<选项>] [-t<⽂件系统类型>] [设备名] [加载点]⽤法说明:mount可将指定设备中指定的⽂件系统加载到Linux⽬录下(也就是装载点)。
可将经常使⽤的设备写⼊⽂件/etc/fstab,以使系统在每次启动时⾃动加载。
mount加载设备的信息记录在/etc/mtab⽂件中。
使⽤umount命令卸载设备时,记录将被清除。
常⽤参数和选项:-a 加载⽂件/etc/fstab中设置的所有设备。
-f 不实际加载设备。
可与-v等参数同时使⽤以查看mount的执⾏过程。
-F 需与-a参数同时使⽤。
所有在/etc/fstab中设置的设备会被同时加载,可加快执⾏速度。
-h 显⽰在线帮助信息。
-L<标签> 加载⽂件系统标签为<标签>的设备。
-l 显⽰已加载的⽂件系统列表(同直接执⾏mount)-n 不将加载信息记录在/etc/mtab⽂件中。
-o<选项> 指定加载⽂件系统时的选项。
有些选项也可在/etc/fstab中使⽤。
这些选项包括:async 以⾮同步的⽅式执⾏⽂件系统的输⼊输出动作。
atime 每次存取都更新inode的存取时间,默认设置,取消选项为noatime。
auto 必须在/etc/fstab⽂件中指定此选项。
执⾏-a参数时,会加载设置为auto的设备,取消选取为noauto。
defaults 使⽤默认的选项。
默认选项为rw、suid、dev、exec、anto nouser与async。
dev 可读⽂件系统上的字符或块设备,取消选项为nodev。
exec 可执⾏⼆进制⽂件,取消选项为noexec。
noatime 每次存取时不更新inode的存取时间。
noauto ⽆法使⽤-a参数来加载。
Linux下各个文件夹的结构说明及用途介绍(超详细)
Linux下各个⽂件夹的结构说明及⽤途介绍(超详细)linux下各⽂件夹的结构说明及⽤途介绍:下⾯给⼤家分享下 ——电⼦版/bin:⼆进制可执⾏命令。
/dev:设备特殊⽂件。
/etc:系统管理和配置⽂件。
/etc/rc.d:启动的配置⽂件和脚本。
/home:⽤户主⽬录的基点,⽐如⽤户user的主⽬录就是/home/user,可以⽤~user表⽰。
/lib:标准程序设计库,⼜叫动态链接共享库,作⽤类似windows⾥的.dll⽂件。
/sbin:系统管理命令,这⾥存放的是系统管理员使⽤的管理程序。
/tmp:公⽤的临时⽂件存储点。
/root:系统管理员的主⽬录。
/mnt:系统提供这个⽬录是让⽤户临时挂载其他的⽂件系统。
/lost+found:这个⽬录平时是空的,系统⾮正常关机⽽留下“⽆家可归”的⽂件就在这⾥。
/proc:虚拟的⽬录,是系统内存的映射。
可直接访问这个⽬录来获取系统信息。
/var:某些⼤⽂件的溢出区,⽐⽅说各种服务的⽇志⽂件。
/usr:最庞⼤的⽬录,要⽤到的应⽤程序和⽂件⼏乎都在这个⽬录。
其中包含:/usr/x11r6:存放x window的⽬录。
/usr/bin:众多的应⽤程序。
/usr/sbin:超级⽤户的⼀些管理程序。
/usr/doc:linux⽂档。
/usr/include:linux下开发和编译应⽤程序所需要的头⽂件。
/usr/lib:常⽤的动态链接库和软件包的配置⽂件。
/usr/man:帮助⽂档。
/usr/src:源代码,linux内核的源代码就放在/usr/src/linux ⾥。
/usr/local/bin:本地增加的命令。
/usr/local/lib:本地增加的库根⽂件系统。
通常情况下,根⽂件系统所占空间⼀般应该⽐较⼩,因为其中的绝⼤部分⽂件都不需要经常改动,⽽且包括严格的⽂件和⼀个⼩的不经常改变的⽂件系统不容易损坏。
除了可能的⼀个叫/vmlinuz标准的系统引导映像之外,根⽬录⼀般不含任何⽂件。
Linux命令高级技巧使用mount命令挂载和卸载文件系统和设备
Linux命令高级技巧使用mount命令挂载和卸载文件系统和设备Linux命令高级技巧:使用mount命令挂载和卸载文件系统和设备Linux作为一种开源操作系统,具有广泛的适用性和可定制性。
它提供了丰富的命令行工具,使得用户可以以更高效和灵活的方式管理文件系统和设备。
其中,mount命令是一个重要的工具,用于挂载和卸载文件系统和设备。
本文将介绍Linux命令高级技巧,以及如何使用mount命令进行挂载和卸载。
一、什么是挂载和卸载在开始介绍mount命令之前,我们先来了解一下什么是挂载和卸载。
挂载,即将一个独立的文件系统附加到已有的目录树中。
通过挂载,文件系统中的文件和目录可以在特定的目录下访问和操作。
例如,将一个USB设备挂载到/mnt/usb目录下,就可以在该目录下访问USB设备中的文件。
卸载,即解除文件系统和目录的关联关系,使得文件系统可以安全地从系统中移除。
在卸载之前,需要确保文件系统中的所有文件已经关闭,并且没有进程正在使用该文件系统。
二、mount命令的基本用法mount命令有很多选项和参数,用于实现不同的挂载和卸载操作。
下面是mount命令的基本用法:```mount [-t 文件系统类型] [-o options] 设备名/源路径(必选) 目标路径(必选)```其中,“-t”选项用于指定文件系统类型,“-o”选项用于指定挂载选项。
1. 挂载文件系统要挂载一个文件系统,需要指定设备名或源路径以及目标路径。
设备名可以是硬盘分区、SD卡、U盘等。
下面是一个例子:```mount /dev/sdb1 /mnt/usb```上述命令将/dev/sdb1设备挂载到/mnt/usb目录下。
2. 指定文件系统类型有时候,在挂载文件系统时需要指定文件系统的类型。
例如,要挂载FAT32格式的U盘,可以使用以下命令:```mount -t vfat /dev/sdc1 /mnt/usb```上述命令中,“-t”选项后的“vfat”表示文件系统类型为FAT32。
linux课件 第4章 linux文件系统管理
第4章文件系统管理4.1.1 Linux文件系统概述文件系统对于任何一种操作系统来说都是非常关键的。
Linux中的文件系统是Linux下所有文件和目录的集合。
Linux系统中把CPU、内存之外所有其他设备都抽象为文件处理。
文件系统的优劣与否和操作系统的效率、稳定性及可靠性密切相关。
从系统角度看,文件系统实现了对文件存储空间的组织和分配,并规定了如何访问存储在设备上的数据。
文件系统在逻辑上是独立的实体,它可以被操作系统管理和使用。
Linux系统自身的文件系统称为ext2,它是Linux默认的文件系统。
通常把ext2及Linux 支持的文件系统称为逻辑文件系统。
系统中所有的设备,包括字符设备、块设备和网络设备,都按照某种方式由逻辑文件系统统一管理。
一般不同的逻辑文件系统具有不同的组织结构和文件操作函数,相互之间差别很大。
Linux的内核使用了虚拟文件系统VFS(Virtual File System)技术,即在传统的逻辑文件系统的基础上,增加了一个称为虚拟文件系统的接口层,如图4-1所示。
虚拟文件系统用于管理各种逻辑文件系统,屏蔽了它们之间的差异,为用户命令、函数调用和内核其他部分提供访问文件和设备的统一接口,使得不同的逻辑文件系统按照同样的模式呈现在使用者面前。
对于普通用户来讲,觉察不到逻辑文件系统之间的差异,可以使用同样的命令来操作不同逻辑文件系统所管理的文件。
图4-1 Linux文件系统结构示意图从用户角度看,文件系统也是操作系统中最重要的组成部分。
因为Linux系统中所有的程序、库文件、系统和用户文件都存放在文件系统中,文件系统要对这些数据文件进行组织管理。
Linux下的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统VFS,三是挂载到VFS中的各种实际文件系统,例如ext2,jffs等。
VFS是一种软件机制,称它为Linux的文件系统管理者更确切,与它相关的数据结构只存在于物理内存当中。
linux iscsi 配置过程详解
/etc/init.d/iscsi stop
/etc/init.d/iscsi start
或
service iscsi stop
service iscsi start
查询服务运行状态 service iscsi status
在/etc/fstab中添加
UUID=xxxxxxx /data ext3 _netdev 0 0 替换掉原来的那行
11 搞定,这样每次重启系统就可以看到自动挂载好的文件系统,使用跟本地磁盘一样。
node.session.timeo.replacement_timeout=60
4 修改主机名/etc/iscsi/initiatorname.iscsi
格式为InitiatorName=iqn.xxxx
5 将iSCSI 服务的运行级别设置为在重新启动和关闭时自动启动
chkconfig --level 35 iscsid on
/dev/sdb /data ext3 _netdev 0 0
但是,Linux系统重启后,磁盘设备的名称可能会发生飘移,从而引起文件系统不能挂载上来或者不能正确挂载,
使用UUID的方式进行挂载可以解决这个问题
命令tune2fs -l /dev/sdb可以查到文件系统的UUID
用户名:admin 密码: password
查看连接,注册连接用户主机
建建立lun
建立存储群,选择主机和lun
重启iSCSI服务就会看到分区
8 对发现的磁盘分区创建文件系统 mkfs.ext3 /dev/sdb
用tune2fs修改文件系统的属性,去掉自动检查的属性 tune2fs -c -1 -i 0 /dev/sdb
linux之NFS详解
linux之NFS详解⼀、NFS的应⽤与概述# 1.为什么⽤共享存储# 2.存储有哪些⼯具# 3.共享存储应⽤场景有哪些# 4.部署nfs共享存储# 5.客户端尝试连接共享存储什么是NFS?NFS 是 Network File System 的缩写及⽹络⽂件系统。
NFS 主要功能是通过局域⽹络让不同的主机系统之间可以共享⽂件或⽬录。
NFS 系统和 Windows ⽹络共享、⽹络驱动器类似, 只不过 windows ⽤于局域⽹, NFS ⽤于企业集群架构中, 如果是⼤型⽹站, 会⽤到更复杂的分布式⽂件系统FastDFS,glusterfs,HDFS那么我们为什么要使⽤数据存储共享服务?1.实现多台服务器之间数据共享2.实现多台服务器之间数据⼀致1.1 NFS应⽤场景下⾯我将通过图解给⼤家展⽰集群需要共享存储服务的理由。
1.A ⽤户上传图⽚经过负载均衡,负载均衡将上传请求调度⾄ WEB1 服务器上。
2.B ⽤户访问 A ⽤户上传的图⽚,此时 B ⽤户被负载均衡调度⾄ WEB2 上,因为 WEB2 上没有这张图⽚,所以 B⽤户⽆法看到 A ⽤户传的图⽚如果有共享存储的情况1.A ⽤户上传图⽚⽆论被负载均衡调度⾄ WEB1 还是 WEB2, 最终数据都被写⼊⾄共享存储2.B ⽤户访问 A ⽤户上传图⽚时,⽆论调度⾄ WEB1 还是 WEB2,最终都会上共享存储访问对应的⽂件,这样就可以访问到资源了1.2 nfs存储⼯作原理实现NFS⼯作原理# 1.⽤户进程访问 NFS 客户端,使⽤不同的函数对数据进⾏处理# 2.NFS 客户端通过 TCP/IP 的⽅式传递给 NFS 服务端# 3.NFS 服务端接收到请求后,会先调⽤ portmap 进程进⾏端⼝映射。
# 4.nfsd 进程⽤于判断 NFS 客户端是否拥有权限连接 NFS 服务端。
# 5.Rpc.mount 进程判断客户端是否有对应的权限进⾏验证。
# 6.idmap 进程实现⽤户映射和压缩# 7.最后 NFS 服务端会将对应请求的函数转换为本地能识别的命令,传递⾄内核,由# 内核驱动硬件。
用于文件系统挂载的命令
用于文件系统挂载的命令文件系统挂载是指将一个文件系统连接到计算机的目录树中,使得该文件系统中的文件和目录可以被访问和操作。
在Linux系统中,文件系统挂载是通过mount命令来实现的。
mount命令的主要作用是将指定的文件系统挂载到指定的目录下。
mount命令的基本语法如下:mount [-t 文件系统类型] [-o 挂载选项] 设备文件名挂载点其中,-t选项用于指定文件系统类型,-o选项用于指定挂载选项,设备文件名是要挂载的设备文件的路径,挂载点是要挂载到的目录。
文件系统类型指的是文件系统的格式,常见的文件系统类型有ext2、ext3、ext4、NTFS、FAT32等。
在使用mount命令时,需要根据实际情况指定文件系统类型。
挂载选项是指挂载时的一些参数,用于控制挂载的行为。
常见的挂载选项有:- ro:以只读方式挂载文件系统。
- rw:以读写方式挂载文件系统。
- remount:重新挂载文件系统,可以修改挂载选项。
- noexec:禁止在该文件系统上执行可执行文件。
- nosuid:禁止在该文件系统上执行setuid和setgid程序。
- nodev:禁止在该文件系统上创建设备文件。
设备文件名是指要挂载的设备文件的路径,可以是硬盘、U盘、光盘等存储设备。
挂载点是指将文件系统挂载到计算机目录树中的目录,可以是任何目录,但通常是空目录。
mount命令的使用非常灵活,可以根据实际情况指定不同的选项和参数。
例如,可以使用mount命令挂载网络文件系统、CD-ROM、USB存储设备等。
总之,mount命令是Linux系统中非常重要的命令之一,它可以让我们方便地访问和操作不同类型的文件系统。
在使用mount命令时,需要注意文件系统类型、挂载选项、设备文件名和挂载点等参数,以确保挂载成功并且文件系统可以正常访问。
fsnotify详解
fsnotify详解fsnotify是一个Linux内核的事件通知框架,可以监控文件系统的变化并发送通知。
本文将详细介绍fsnotify的原理、使用方法以及相关的API函数。
首先,我们需要了解fsnotify的核心原理:它通过注册回调函数来监听文件系统上的事件,当有对应的事件发生时,就会调用这些回调函数。
fsnotify支持以下事件类型:- 创建/删除/修改文件或目录- 移动文件或目录- 文件系统挂载/卸载在使用fsnotify时,我们需要通过以下步骤来实现:1. 创建一个监控对象(watch descriptor)2. 将该监控对象与需要监控的文件或目录进行关联3. 注册回调函数(event handler)来处理事件通知4. 循环等待事件通知的到来fsnotify提供了一系列API函数来实现这些步骤,包括:- `int fsnotify_init(void)`:初始化fsnotify- `int fsnotify_destroy(void)`:销毁fsnotify- `int fsnotify_add_watch(int fd, const char *pathname, __u32 mask)`:创建监控对象并与指定的文件或目录关联- `int fsnotify_del_watch(int fd, __u32 wd)`:删除指定的监控对象- `void fsnotify_run_event_batch(struct fsnotify_group *group, unsigned long max_events, struct fsnotify_event_list *events)`:循环等待事件通知的到来并处理通知在使用fsnotify时,需要注意以下几点:- fsnotify的事件通知机制是基于内核的,因此不能直接使用用户空间程序- fsnotify的事件通知是异步的,因此需要使用循环等待方式来实现- fsnotify的事件回调函数需要尽快处理事件,以免阻塞其他事件的处理本文中将通过代码示例来详细介绍fsnotify的使用方法及相关API函数,帮助读者更好地理解和应用该框架。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:本文对新增硬盘,切割硬盘,创建硬盘分区,为硬盘分区创建文件系统,以及加载文件系统的流程做总结性论述;主要是为初学者弄清楚这一操作过程;本文涉及fdisk、mkfs、mount ... ... 等工具;对/etc/fstab 进行了解说;还有磁盘扫描工具fsck 等介绍;如果您想加载一个分区(文件系统),首先您得确认文件系统的类型,然后才能挂载使用,比如通过mount 加载,或者通过修改/etc/fstab来开机自动加载;如果您想添加一个新的分区,或者增加一个新的硬盘,您要通过分区工具来添加分区,然后要创建分区的文件系统,然后才是挂载文件系统;比如通过mount 加载,或者通过修改/etc/fstab来开机自动加载;一、对存储设备的分区;我们这里所指的存储设备主要是本地硬盘、移动硬盘(比如USB 和1394接口的硬盘);由于磁盘很大并且为了满足我们各种需要,所以把硬盘分成若干个分区;在Linux中进行硬盘分区操作的工具有:fdisk ,目前看来也是最好用的分区工具;parted 和cfdisk在某一方面有点优点,如parted中的数据备份功能;推荐您用fdisk 分区工具;二、存储设备进行格式化,即建立文件系统的过程;1、文件系统的一点介绍对存储设备分区还是远远不够的,我们还要对这些新增分区进行格式化;一个分区只有建立了某种文件系统后,这个分区才能使用;建立文件系统过程,就是用相应格式化工具格式化分区的过程;在Linux操作系统中,目前几乎支持目前主流的文件系统,比如NTFS(只读)、FAT(可读可写)、ext2、ext3、reiserfs、hfs (MAC 操作系统的文件系统)、swap 交换分区... ... 还有一些不熟悉的操作系统的文件系统等;在Linux中,我们常用的文件系统无非是上面例出的这些;如果您新增了一个硬盘,可能想格式化成Linux的文件系统,最佳选择是reiserfs 或ext3;ext2的使用风险比较大;速度最快的文件系统,当属reiserfs;reiserfs 还有很多优点,比如更安全;ext3是Redhat认为最好的文件系统;2、格式化工具介绍和使用;我们常用的工具mkfs mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkfs.msdos mkfs.vfat mkswap提示:如果您不能创建reiserfs 文件系统,也就是说没有mkfs.reiserfs 或者mkreiserfs 命令1)mkfs的使用;使用方法:[root@localhost]# mkfs -t 文件系统存储设备注:这里的文件系统是要指定的,比如ext3 ;reiserfs ;ext2 ;fat32 ;msdos 等... ...设备比如是一个硬盘的分区,软盘,光驱等.. ...在格式化分区之前,您得懂得如何查看硬盘分区情况,并有针对性的格式化;比如用fdisk -l 来查看;比如我想格式化一个移动U盘中的一个分区;应该是:[root@localhost]# fdisk -lDisk /dev/hda: 80.0 GB, 80026361856 bytes255 heads, 63 sectors/track, 9729 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/hda1 * 1 765 6144831 7 HPFS/NTFS/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)/dev/hda3 2806 9729 55617030 5 Extended/dev/hda5 2806 3825 8193118+ 83 Linux/dev/hda6 3826 5100 10241406 83 Linux/dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris/dev/hda8 5199 6657 11719386 83 Linux/dev/hda9 6658 7751 8787523+ 83 Linux/dev/hda10 7752 9729 15888253+ 83 LinuxDisk /dev/sda: 1035 MB, 1035730944 bytes256 heads, 63 sectors/track, 125 cylindersUnits = cylinders of 16128 * 512 = 8257536 bytesDevice Boot Start End Blocks Id System/dev/sda1 1 25 201568+ 83 Linux/dev/sda2 26 125 806400 5 Extended/dev/sda5 26 50 201568+ 83 Linux/dev/sda6 51 76 200781 83 Linuxsda这个设备是移动U盘,所以可以用fdisk -l /dev/sda专门来显示他的分区情况;格式化/dev/sda6 分区为ext3文件系统,则为:[root@localhost]# mkfs -t ext3 /dev/sda6mke2fs 1.37 (21-Mar-2005)Filesystem label=OS type: LinuxBlock size=1024 (log=0)Fragment size=1024 (log=0)50200 inodes, 200780 blocks10039 blocks (5.00%) reserved for the super userFirst data block=1Maximum filesystem blocks=6737100825 block groups8192 blocks per group, 8192 fragments per group2008 inodes per groupSuperblock backups stored on blocks:8193, 24577, 40961, 57345, 73729Writing inode tables: doneCreating journal (4096 blocks): doneWriting superblocks and filesystem accounting information:注:在这里直接回车;doneThis filesystem will be automatically checked every 26 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.这样就格式化好了,sda6现在就是ext3文件系统了;我们就可以用mount 加载这个分区,然后使用这个文件系统;[root@localhost]# mkdir /mnt/sda6[root@localhost]# chmod 777 /mnt/sda6[root@localhost]# mount /dev/sda6 /mnt/sda6当然您也可以把分区格式化成其它的文件系统;比如我们把/dev/sda6格式化为ext3 、ext2、reiserfs、fat32、msdos 文件系统,命令格式如下;[root@localhost]# mkfs -t ext3 /dev/sda6[root@localhost]# mkfs -t ext2 /dev/sda6[root@localhost]# mkfs -t reiserfs /dev/sda6[root@localhost]# mkfs -t fat32 /dev/sda6[root@localhost]# mkfs -t msdos /dev/sda6... ...2)mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkfs.msdos mkfs.vfat mke2fs 的介绍;mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkdosfs mkfs.msdos mkfs.vfat ,其实mkfs 在执行的命令的时候,也是调用的这些工具;通过文件名,我们就知道这些工具是支持什么文件系统;这些命令为我们提供了更多的方便;[root@localhost]# mkfs.ext3 /dev/sda6 注:把该设备格式化成ext3文件系统[root@localhost]# mke2fs -j /dev/sda6 注:把该设备格式化成ext3文件系统[root@localhost]# mkfs.ext2 /dev/sda6 注:把该设备格式化成ext2文件系统root@localhost]# mke2fs /dev/sda6 注:把该设备格式化成ext2文件系统[root@localhost]# mkfs.reiserfs /dev/sda6 注:把该设备格式化成reiserfs文件系统[root@localhost]# mkfs.vfat /dev/sda6 注:把该设备格式化成fat32文件系统[root@localhost]# mkfs.msdos /dev/sda6 注:把该设备格式化成fat16文件系统,msdos文件系统就是fat16;[root@localhost]# mkdosfs /dev/sda6 注:把该设备格式化成fat16文件系统,同mkfs.msdos... ...2)mkswap 把一个分区格式化成为swap交换区;[root@localhost]# mkswap /dev/sda6 注:创建此分区为swap 交换分区[root@localhost]# swapon /dev/sda6 注:加载交换分区;[root@localhost]# swapoff /dev/sda6 注:关闭交换分区;查看系统已经加载的swap交换分区;[root@localhost]# swapon /dev/sda6 注:加载交换分区;[root@localhost]# swapon -sFilename Type Size Used Priority/dev/hda7 partition 787144 0 -1/dev/sda6 partition 225144 0 -3如果让swap开机就加载,应该改 /etc/fstab文件,加类似如下一行;/dev/sda6 swap swap defaults 0 0 注:把此行中的/dev/hda7 改为您的交换分区就行;或者把命令行直接写入/etc/rc.d/rc.local中也行;swapon /dev/sda6如果您的硬盘不能再分区,您可以创建一个swap文件[root@localhost]# dd if=/dev/zero of=/tmp/swap bs=1024 count=524288 注:创建一个大小为512M 的swap 文件,在/tmp目录中;您可以根据自己的需要的大小来创建swap 文件;读入了 524288+0 个块输出了 524288+0 个块[root@localhost]# mkswap /tmp/swap注:把/tmp/swap 文件,创建成swap 交换区Setting up swapspace version 1, size = 536866 kBno label, UUID=d9d8645d-92cb-4d33-b36e-075bb0a2e278[root@localhost]# swapon /tmp/swap注:挂载swap[root@localhost]# swapon -sFilename Type Size Used Priority/dev/hda7 partition 787144 888 -1/tmp/swap file 524280 0 -2注意:其实我们在安装系统的时候,就已经划分了交换分区;查看/etc/fstab,应该swap的行;如果您在安装系统时没有添加swap,可以通过这种办法来添加;三、挂载文件系统;挂载文件系统,目前有两种方法,一是通过mount 来挂载,另一种方法是通过/etc/fstab文件来开机自动挂载;1、通过mount 来挂载磁盘分区(或存储设备)mount的用法其实也简单,我们说几个常用的;挂载文件系统的命令格式:[root@localhost]# mount [-t 文件系统 ] [-o 选项] 设备目录注:-t 通过这个参数,我们来指定文件系统的类型,一般的情况下不必指定有时也能识加,-t 后面跟ext3 、ext2 、reiserfs、vfat 、ntfs 等,其中vfat 是fat32和fat16分区文件系统所所用的参数;如果您忘记了文件系统,也可以在-t 后面加auto ;-o 这个选项,主要选项有权限、用户、磁盘限额、语言编码等,但语言编码的选项,大多用于vfat和ntfs文件系统;由于选项太多,还是请您看看man mount ;设备指存储设备,比如/dev/hda1,/dev/sda1 ,cdrom 等...至于您的系统中有哪些存储设备,主要通过fdisk -l 或者查看/etc/fstab 或dmesg ;一般的情况下光驱设备是/dev/cdrom ;软驱设备是/dev/fd0 ;硬盘及移动硬盘以fdisk -l 的输出为准;1)对光驱和软驱的挂载;[root@localhost]# mount /dev/cdrom[root@localhost]# mount /dev/fd0第一行是mount 光驱,至于mount 到哪了,我们可以通过查看/etc/fstab来查看;同理软驱/dev/fd0设备也是如此;比如我们在/etc/fstab/dev/hdc /media/cdrecorder auto users,exec,noauto,managed 0 0我们可以肯定的是光盘被mount 到了/media/cdrecorder 目录;但我们也可以自己来指定cdrom 挂载的位置;比如/mnt/cdrom ,所以我们也可以这样来挂载光驱;[root@localhost]#mkdir /mnt/cdrom[root@localhost]#mount /dev/cdrom /mnt/cdrom有时我们的设备是COMBO的,有支持dvd cd 还能支持刻录的;我们最好查一下光驱设备的,主要有两个方法,一是通过查看/etc/fstab ,二是通过ls -l 来查看;比如我们在/etc/fstab中查看到类似下面的一行;/dev/hdc /media/cdrecorder auto users,exec,noauto,managed 0 0通过这个,我们能知道hdc 就是cdrom 也是dvdrom的设备,更是cdrecorder的设备;为了验证我们的说法;请用ls -l 来列文件;[root@localhost]# ls -lh /dev/dvd*lrwxrwxrwx 1 root root 3 2005-09-13 /dev/dvd -> hdc[root@localhost]# ls -lh /dev/cdromlrwxrwxrwx 1 root root 3 2005-09-13 /dev/cdrom -> hdc[root@localhost]# ls -lh /dev/cdwriterlrwxrwxrwx 1 root root 3 2005-09-13 /dev/cdwriter -> hdcdvd 、cdrom 、cdwriter 的文件名都链接到了hdc这个设备,所以光驱设备根源就是/dev/hdc ;所以我们也可以这样挂载光驱;[root@localhost]# mkdir /mnt/cdrom[root@localhost]# mount /dev/hdc /mnt/cdrom2)挂载硬盘和移动硬盘的文件系统;一个分区只有创建了文件系统后才能使用,前面我们说过了,我们在Linux大多用的是ext2 、ext3、reiserfs、fat32、msdos 、ntfs等;[1]挂载Linux文件系统;对于ext2 、ext3 、reiserfs 不需要指定文件系统的编码,其实mount 也没有这个功能;这些Linux 文件系统,如果出现编码问题,一般是通过export LANG来指定;所以挂载这些文件系统比较简单;首先我们得建一个文件系统挂载的目录;我们前面已经提到了;一个有文件系统的分区要挂到系统中,必须要有一个挂载点;这个挂载点就是一个目录;比如我们通过fdisk -l 得知hda5 是Linux分区,并且创建了文件系统,比如是reiserfs 文件系统吧;[root@localhost]# fdisk -l /dev/hdaDisk /dev/hda: 80.0 GB, 80026361856 bytes255 heads, 63 sectors/track, 9729 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/hda1 * 1 765 6144831 7 HPFS/NTFS/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)/dev/hda3 2806 9729 55617030 5 Extended/dev/hda5 2806 3825 8193118+ 83 Linux/dev/hda6 3826 5100 10241406 83 Linux/dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris/dev/hda8 5199 6657 11719386 83 Linux/dev/hda9 6658 7751 8787523+ 83 Linux/dev/hda10 7752 9729 15888253+ 83 Linux[root@localhost]# mkdir /mnt/hda5/ 注:先创建一个挂载目录;[root@localhost]# chmod 777 /mnt/hda5/注:设置/mnt/hda5的权限为任何用户可写可读可执行;这样所有的用户都能在写入;[root@localhost]# mount -t reiserfs /dev/hda5 /mnt/hda5注:通过-t reiserfs 来指定/dev/hda5是reiserfs 文件系统,并且挂载到/mnt/hda5目录;[root@localhost]# mount -t auto /dev/hda5 /mnt/hda5注:假如我们不知道hda5上reiserfs 文件系统,我们可以用 -t auto 让系统定夺,然后挂载到/mnt/hda5 ;[root@localhost]# mount /dev/hda5 /mnt/hda5注:不加任何参数,直接 mount /dev/hda5 到/mnt/hda5;系统自动判断分区文件系统;是不是被挂载了,我们通过df -lh 来查看;[root@localhost]# df -lhFilesystem 容量已用可用已用% 挂载点/dev/hda8 11G 8.5G 1.9G 83% //dev/shm 236M 0 236M 0% /dev/shm/dev/hda10 16G 6.9G 8.3G 46% /mnt/hda10/dev/hda5 7.9G 5.8G 2.1G 74% /mnt/hda5[2]挂载Windows文件系统;略,相对于linux文件系统挂接来说,windows文件系统的挂接类同;2)卸载文件系统umount ;命令用法:[root@localhost]# umount 设备或挂载目录举例:[root@localhost]# mount -t auto /dev/hda5 /mnt/hda5 注:挂载/dev/hda5;[root@localhost]# df -lh 注:查看/dev/hda5是否被挂载;Filesystem 容量已用可用已用% 挂载点/dev/hda8 11G 8.5G 1.9G 83% //dev/shm 236M 0 236M 0% /dev/shm/dev/hda10 16G 6.9G 8.3G 46% /mnt/hda10/dev/hda5 7.9G 5.8G 2.1G 74% /mnt/hda5[root@localhost]# umount /dev/hda5注:卸载/dev/hda5[root@localhost]# df -lh 注:看是否卸载了/dev/hda5;Filesystem 容量已用可用已用% 挂载点/dev/hda8 11G 8.5G 1.9G 83% //dev/shm 236M 0 236M 0% /dev/shm/dev/hda10 16G 6.9G 8.3G 46% /mnt/hda10[root@localhost]#umount /dev/cdrom 注:卸载cdrom ;[root@localhost]#umount /dev/fd0注:卸载软驱;... ...再说一个查看分区是否被挂载了的命令,直接用mount -s[root@localhost]# mount -s2、通过/etc/fstab文件来开机自动挂载文件系统1)理解fstab上面我们说了mount挂载存储设备文件系统的办法;现在我们再来说一说在/etc/fstab 中实现开机自动挂载文件系统的办法;首先我们要查看/etc/fstab ;主要看他的规划写法;# This file is edited by fstab-sync - see 'man fstab-sync' for detailsLABEL=/1 / ext3 defaults 1 1/dev/devpts /dev/pts devpts gid=5,mode=620 0 0/dev/shm /dev/shm tmpfs defaults 0 0/dev/proc /proc proc defaults 0 0/dev/sys /sys sysfs defaults 0 0LABEL=SWAP-hda7 swap swap defaults 0 0/dev/hdc /media/cdrecorder auto users,exec,noauto,managed 0 0第一字段:设备名,在这里表示是文件系统;有时我们把挂载文件系统也说成挂载分区;在这个字段中也可以用分区标签;在例子中/LABEL=/1就是linux系统安装分区的标签,至于是在哪个分区,可以用df -lh 来查看;[root@localhost]# df -lhFilesystem 容量已用可用已用% 挂载点/dev/hda8 11G 8.5G 1.9G 83% //dev/shm 236M 0 236M 0% /dev/shm/dev/hda10 16G 6.9G 8.3G 46% /mnt/hda10我们可以知道LABEL=/1是/dev/hda8的标签;那我们用什么命令来创建硬盘分区的标签呢?对于ext3和ext2文件系统,我们可以用e2label 来设置e2label device [newlabel] 创建设备的标签命令比如我们想把文件系统为ext3 的分区/dev/hda5的标签设备为/5 ,我们应该执行如下的命令:[root@localhost]# e2label /dev/hda5 /5[root@localhost]# mkdir /mnt/hda5 注:创建挂载/dev/hda5分区的目录;[root@localhost]# chmod 777 /mnt/hda5 注:打开权限,所有用户可读可写可执行;然后我们要改/etc/fstab 中加一行/5 /mnt/hda5 ext3 defaults 0 0警告:请不要在您的Linux的安装分区(也就是Linux系统/ 所在的分区)实践,会导致您的Linux系统崩溃;如果想实践,请在其它分区测试;如果是reiserfs文件系统,我们应该用[root@localhost]# reiserfstune -l 标签设备举例:比如我为reiserfs 文件系统/dev/hda10设置标签为/10 ;[root@localhost]# reiserfstune -l /10 /dev/hda10我们在/etc/fstab中加入一行;/10 /mnt/hda10 reiserfs defaults 0 0警告:请不要在您的Linux的安装分区(也就是Linux系统/ 所在的分区)实践,会导致您的Linux系统崩溃;如果想实践,请在其它分区测试;第二字段:文件系统的挂载点;第三字段:文件系统类型;第四字段:mount 命令的选项,和mount 中的-o 同理;defaults包括这些选项rw, suid, dev, exec, auto, nouser, async;通过实践,这个默认的还能满足我们的需要;第五字段:表示文件系统是否需要dump 备份,是真假关系;1是需要,0 是不需要;第六字段:是否在系统启动时,通过fsck磁盘检测工具来检查文件系统,1是需要,0是不需要,2是跳过;基于这些认识;比如我们要开机自动挂载/dev/hda5 ;我们可以如下做;[root@localhost]# mkdir /mnt/hda5/ 注:先创建一个挂载目录;[root@localhost]# chmod 777 /mnt/hda5/ 注:设置/mnt/hda5的权限为任何用户可写可读可执行;这样所有的用户都能在写入;然后我们在/etc/fstab 中加如下的一行;/dev/hda5 /mnt/hda5 reiserfs defaults 0 0这样重启机器就能看到效果了;四、对文件系统进行扫描fsck;类似于Windows中的scandisk,在Linux中就有类似这样的工具fsck,不过fsck 可不仅仅是扫描,还能修正文件系统的一些问题。