linux 创建文件系统及挂载文件系统流程详解 linuxsir_org.htm
来自「linuxSir 网站的精华文章」· HTM 代码 · 共 599 行 · 第 1/3 页
HTM
599 行
/mnt/sda6<BR>[root@localhost beinan]# mount /dev/sda6
/mnt/sda6</CODE></DIV>
<P></P>
<P>当然您也可以把分区格式化成其它的文件系统;比如我们把 /dev/sda6格式化为ext3 、ext2、reiserfs、fat32、msdos
文件系统,命令格式如下;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# mkfs -t ext3
/dev/sda6<BR>[root@localhost beinan]# mkfs -t ext2
/dev/sda6<BR>[root@localhost beinan]# mkfs -t reiserfs
/dev/sda6<BR>[root@localhost beinan]# mkfs -t fat32
/dev/sda6<BR>[root@localhost beinan]# mkfs -t msdos /dev/sda6<BR>...
...</CODE></DIV>
<P></P>
<P><FONT size=2><B><BR>2)mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkfs.msdos
mkfs.vfat mke2fs 的介绍;<BR></B></FONT></P>
<P>我们先说了一个mkfs 工具后,我们再来介绍 mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkdosfs
mkfs.msdos mkfs.vfat ,其实mkfs 在执行的命令的时候,也是调用的这个工具,这也是我先把mkfs介绍的主要原因;</P>
<P>通过文件名,我们就知道这些工具是支持什么文件系统;这些命令为我们提供了更多的方便;<BR><BR><BR>
<DIV class=codeblock><CODE>[root@localhost beinan]# mkfs.ext3 /dev/sda6
注:把该设备格式化成ext3文件系统<BR>[root@localhost beinan]# mke2fs -j /dev/sda6
注:把该设备格式化成ext3文件系统<BR>[root@localhost beinan]# mkfs.ext2 /dev/sda6
注:把该设备格式化成ext2文件系统<BR>root@localhost beinan]# mke2fs /dev/sda6
注:把该设备格式化成ext2文件系统<BR>[root@localhost beinan]# mkfs.reiserfs /dev/sda6
注:把该设备格式化成reiserfs文件系统<BR>[root@localhost beinan]# mkfs.vfat /dev/sda6
注:把该设备格式化成fat32文件系统<BR>[root@localhost beinan]# mkfs.msdos /dev/sda6
注:把该设备格式化成fat16文件系统,msdos文件系统就是fat16;<BR>[root@localhost beinan]# mkdosfs
/dev/sda6 注:把该设备格式化成fat16文件系统,同mkfs.msdos<BR>...
...</CODE></DIV><BR><BR><FONT size=2><B><BR>2)mkswap
把一个分区格式化成为swap交换区;<BR></B></FONT><BR>
<DIV class=codeblock><CODE>[root@localhost beinan]# mkswap /dev/sda6
注:创建此分区为swap 交换分区<BR>[root@localhost beinan]# swapon /dev/sda6
注:加载交换分区;<BR>[root@localhost beinan]# swapoff /dev/sda6
注:关闭交换分区;</CODE></DIV>
<P></P>
<P>我们查看系统已经加载的swap交换分区;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# swapon /dev/sda6
注:加载交换分区;<BR>[root@localhost beinan]# swapon -s<BR>Filename Type Size Used
Priority<BR>/dev/hda7 partition 787144 0 -1<BR>/dev/sda6 partition 225144
0
-3<BR><code><BR>为什么我的系统有两个交换分区?因为我用移动U盘做的实验,主要是为写教程之用;sda6是我在U盘上建的swap分区;<BR>如果让swap开机就加载,应该改
/etc/fstab文件,加类似如下一行;<BR><code><BR>/dev/sda6 swap swap defaults 0 0
注:把此行中的/dev/hda7 改为您的交换分区就行;</CODE></DIV>
<P></P>
<P>或者把命令行直接写入 /etc/rc.d/rc.local中也行;<BR>
<DIV class=codeblock><CODE>swapon /dev/sda6</CODE></DIV>
<P></P>
<P><B>如果您的硬盘不能再分区,您可以创建一个swap文件</B></P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# dd if=/dev/zero
of=/tmp/swap bs=1024 count=524288 注:创建一个大小为512M 的swap
文件,在/tmp目录中;您可以根据自己的需要的大小来创建swap 文件;<BR>读入了 524288+0 个块<BR>输出了 524288+0
个块<BR>[root@localhost beinan]# mkswap /tmp/swap 注:把/tmp/swap 文件,创建成swap
交换区<BR>Setting up swapspace version 1, size = 536866 kB<BR>no label,
UUID=d9d8645d-92cb-4d33-b36e-075bb0a2e278<BR>[root@localhost beinan]#
swapon /tmp/swap 注:挂载swap <BR>[root@localhost beinan]# swapon
-s<BR>Filename Type Size Used Priority<BR>/dev/hda7 partition 787144 888
-1<BR>/tmp/swap file 524280 0 -2</CODE></DIV>
<P></P>
<P><FONT
color=red><B>注意:</B></FONT>其实我们在安装系统的时候,就已经划分了交换分区;查看/etc/fstab,应该swap的行;如果您在安装系统时没有添加swap,可以通过这种办法来添加;</P>
<P><FONT size=4><B><BR>三、挂载文件系统;<BR></B></FONT></P>
<P>挂载文件系统,目前有两种方法,一是通过 mount 来挂载,另一种方法是通过/etc/fstab文件来开机自动挂载;</P>
<P><FONT size=3><B><BR>1、通过mount 来挂载磁盘分区(或存储设备)<BR></B></FONT></P>
<P>mount的用法其实也简单,我们说几个常用的;<BR><B><BR>挂载文件系统的命令格式:<BR></B><BR>
<DIV class=codeblock><CODE>[root@localhost beinan]# mount [-t 文件系统 ] [-o
选项] 设备 目录</CODE></DIV>
<P></P>
<P><FONT color=blue><B>注:</B></FONT> </P>
<P>-t 通过这个参数,我们来指定文件系统的类型,一般的情况下不必指定有时也能识加,-t 后面跟 ext3 、ext2
、reiserfs、vfat 、ntfs 等,其中 vfat 是fat32和fat16分区文件系统所所用的参数;如果您忘记了文件系统,也可以在-t
后面加auto ;</P>
<P>-o 这个选项,主要选项有权限、用户、磁盘限额、语言编码等,但语言编码的选项,大多用于vfat和ntfs文件系统;由于选项太多,还是请您看看
man mount ;这里不多说;</P>
<P>设备 指存储设备,比如/dev/hda1, /dev/sda1 ,cdrom 等...至于您的系统中有哪些存储设备,主要通过 fdisk -l
或者查看 /etc/fstab 或 dmesg ;一般的情况下光驱设备是/dev/cdrom ;软驱设备是/dev/fd0 ;硬盘及移动硬盘以
fdisk -l 的输出为准;</P>
<P><FONT
size=2><B><BR>1)对光驱和软驱的挂载;<BR></B></FONT><BR><B><BR>举例:<BR></B><BR>
<DIV class=codeblock><CODE>[root@localhost beinan]# mount
/dev/cdrom<BR>[root@localhost beinan]# mount /dev/fd0</CODE></DIV>
<P></P>
<P>第一行是mount 光驱,至于mount 到哪了,我们可以通过查看
/etc/fstab来查看;同理软驱/dev/fd0设备也是如此;比如我们在/etc/fstab<BR>
<DIV class=codeblock><CODE>/dev/hdc /media/cdrecorder auto
users,exec,noauto,managed 0 0</CODE></DIV>
<P></P>
<P>我们可以肯定的是光盘被mount 到了 /media/cdrecorder 目录;</P>
<P>但我们也可以自己来指定cdrom 挂载的位置 ;比如 /mnt/cdrom ,所以我们也可以这样来挂载光驱;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]#mkdir
/mnt/cdrom<BR>[root@localhost beinan]# mount /dev/cdrom
/mnt/cdrom</CODE></DIV>
<P></P>
<P>我们先建一个目录,然后执行mount 命令,这样cdrom 就挂在 /mnt/cdrom 中了;我们就可以在/mnt/cdrom
中查看光盘中资料和文件;这个目录您想怎么建就怎么建。用什么目录不是最重要的。重要的是您知道自己在做什么就行了。比如我们也可以把这个目录建成
dvdrom ;然后用 mount /dev/cdrom /mnt/dvdrom 来挂载;</P>
<P>有时我们的设备是COMBO的,有支持dvd cd 还能支持刻录的;我们最好查一下光驱设备的,主要有两个方法,一是通过查看 /etc/fstab
,二是通过ls -l 来查看;比如我们在/etc/fstab中查看到类似下面的一行;</P>
<P>
<DIV class=codeblock><CODE>/dev/hdc /media/cdrecorder auto
users,exec,noauto,managed 0 0</CODE></DIV>
<P></P>
<P>通过这个,我们能知道hdc 就是cdrom 也是dvdrom的设备 ,更是 cdrecorder的设备;为了验证我们的说法;请用ls -l
来列文件;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# ls -lh
/dev/dvd*<BR>lrwxrwxrwx 1 root root 3 2005-09-13 /dev/dvd ->
hdc<BR>[root@localhost beinan]# ls -lh /dev/cdrom<BR>lrwxrwxrwx 1 root
root 3 2005-09-13 /dev/cdrom -> hdc<BR>[root@localhost beinan]# ls -lh
/dev/cdwriter<BR>lrwxrwxrwx 1 root root 3 2005-09-13 /dev/cdwriter ->
hdc</CODE></DIV>
<P></P>
<P>这不一目了然了吗?dvd 、cdrom 、cdwriter 的文件名都链接到了hdc这个设备,所以光驱设备根源就是/dev/hdc
;所以我们也可以这样挂载光驱;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# mkdir
/mnt/cdrom<BR>[root@localhost beinan]# mount /dev/hdc
/mnt/cdrom</CODE></DIV><BR><BR><BR><FONT
size=2><B><BR>2)挂载硬盘和移动硬盘的文件系统;<BR></B></FONT>
<P></P>
<P>一个分区只有创建了文件系统后才能使用,前面我们说过了,我们在Linux大多用的是ext2 、ext3、reiserfs、fat32、msdos
、ntfs等;<BR><B><BR>[1]挂载Linux文件系统;<BR></B></P>
<P>对于ext2 、ext3 、reiserfs 不需要指定文件系统的编码,其实mount
也没有这个功能;这些Linux文件系统,如果出现编码问题,一般是通过export LANG来指定;所以挂载这些文件系统比较简单;</P>
<P>首先我们得建一个文件系统挂载的目录;我们前面已经提到了;一个有文件系统的分区要挂到系统中,必须要有一个挂载点;这个挂载点就是一个目录;比如我们通过fdisk
-l 得知hda5 是Linux分区,并且创建了文件系统,比如是reiserfs 文件系统吧;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# fdisk -l
/dev/hda<BR>Disk /dev/hda: 80.0 GB, 80026361856 bytes<BR>255 heads, 63
sectors/track, 9729 cylinders<BR>Units = cylinders of 16065 * 512 =
8225280 bytes<BR> Device Boot Start End Blocks Id
System<BR>/dev/hda1 * 1 765 6144831 7 HPFS/NTFS<BR>/dev/hda2 766 2805
16386300 c W95 FAT32 (LBA)<BR>/dev/hda3 2806 9729 55617030 5
Extended<BR>/dev/hda5 2806 3825 8193118+ 83 Linux<BR>/dev/hda6 3826 5100
10241406 83 Linux<BR>/dev/hda7 5101 5198 787153+ 82 Linux swap /
Solaris<BR>/dev/hda8 5199 6657 11719386 83 Linux<BR>/dev/hda9 6658 7751
8787523+ 83 Linux<BR>/dev/hda10 7752 9729 15888253+ 83 Linux</CODE></DIV>
<P></P>
<P>我们先用fdisk -l 来查看一下分区情况:我们想要挂载/dev/hda5分区,比如hda5分区创建的是reiserfs文件系统;<BR>
<DIV class=codeblock><CODE>[root@localhost beinan]# mkdir /mnt/hda5/
注:先创建一个挂载目录;<BR>[root@localhost beinan]# chmod 777 /mnt/hda5/
注:设置/mnt/hda5的权限为任何用户可写可读可执行;这样所有的用户都能在写入;<BR>[root@localhost beinan]#
mount -t reiserfs /dev/hda5 /mnt/hda5 注:通过-t reiserfs
来指定/dev/hda5是reiserfs 文件系统, 并且挂载到/mnt/hda5目录;<BR>[root@localhost beinan]#
mount -t auto /dev/hda5 /mnt/hda5 注:假如我们不知道hda5上reiserfs 文件系统,我们可以用 -t
auto 让系统定夺,然后挂载到/mnt/hda5 ;<BR>[root@localhost beinan]# mount /dev/hda5
/mnt/hda5 注:不加任何参数,直接 mount /dev/hda5
到/mnt/hda5;系统自动判断分区文件系统;</CODE></DIV>
<P></P>
<P>是不是被挂载了,我们通过df -lh 来查看;<BR>
<DIV class=codeblock><CODE>[root@localhost beinan]# df -lh<BR>Filesystem
容量 已用 可用 已用% 挂载点<BR>/dev/hda8 11G 8.5G 1.9G 83% /<BR>/dev/shm 236M 0 236M
0% /dev/shm<BR>/dev/hda10 16G 6.9G 8.3G 46% /mnt/hda10<BR>/dev/hda5 7.9G
5.8G 2.1G 74%
/mnt/hda5</CODE></DIV><BR><BR><BR><B><BR>[2]挂载Windows文件系统;<BR></B>
<P></P>
<P><B>请参考:</B> <A href="http://www.linuxsir.org/main/?q=node/23">《在Fedora
core 4.0 加载NTFS和FAT32分区详述》</A></P>
<P><FONT size=2><B><BR>3)卸载文件系统umount
;<BR></B></FONT><BR><B><BR>命令用法:</B></P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# umount
设备或挂载目录</CODE></DIV><BR><B><BR>举例:<BR></B><BR>
<DIV class=codeblock><CODE>[root@localhost beinan]# mount -t auto
/dev/hda5 /mnt/hda5 注:挂载/dev/hda5;</CODE></DIV>
<P></P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# df -lh
注:查看/dev/hda5是否被挂载;<BR>Filesystem 容量 已用 可用 已用% 挂载点<BR>/dev/hda8 11G 8.5G
1.9G 83% /<BR>/dev/shm 236M 0 236M 0% /dev/shm<BR>/dev/hda10 16G 6.9G 8.3G
46% /mnt/hda10<BR>/dev/hda5 7.9G 5.8G 2.1G 74% /mnt/hda5</CODE></DIV>
<P></P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# umount /dev/hda5
注:卸载/dev/hda5</CODE></DIV>
<P></P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# df -lh
注:看是否卸载了/dev/hda5;<BR>Filesystem 容量 已用 可用 已用% 挂载点<BR>/dev/hda8 11G 8.5G
1.9G 83% /<BR>/dev/shm 236M 0 236M 0% /dev/shm<BR>/dev/hda10 16G 6.9G 8.3G
46% /mnt/hda10</CODE></DIV>
<P></P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]#umount /dev/cdrom
注:卸载cdrom ;<BR>[root@localhost beinan]#umount /dev/fd0
注:卸载软驱;</CODE></DIV>
<P></P>
<P>... ... </P>
<P>再说一个查看分区是否被挂载了的命令,直接用 mount -s </P>
<P>
<DIV class=codeblock><CODE>[root@localhost beinan]# mount -s</CODE></DIV>
<P></P>
<P><FONT size=3><B><BR>2、通过/etc/fstab文件来开机自动挂载文件系统<BR></B></FONT><BR><FONT
size=2><B><BR>1)理解fstab<BR></B></FONT></P>
<P>上面我们说了mount挂载存储设备文件系统的办法;现在我们再来说一说在/etc/fstab 中实现开机自动挂载文件系统的办法;首先我们要查看
/etc/fstab ;主要看他的规划写法;<BR>
<DIV class=codeblock><CODE># This file is edited by fstab-sync - see 'man
fstab-sync' for details<BR>LABEL=/1 / ext3 defaults 1 1<BR>/dev/devpts
/dev/pts devpts gid=5,mode=620 0 0<BR>/dev/shm /dev/shm tmpfs defaults 0
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?