【嵌入式Linux学习七步曲之第一篇 Linux主机开发环境】虚拟机下Linux和windows的文件共享――mount方式

来源:互联网 发布:益盟软件好用吗 编辑:程序博客网 时间:2024/05/16 08:20

 

虚拟机下Linuxwindows的文件共享――mount方式

Sailor_forever  Sailing_9806@163.com 转载请注明

http://blog.csdn.net/sailor_8318/archive/2008/04/15/2295428.aspx

 

一、在虚拟机下添加windows其他分区... 1

二、查找Linux对应的设备盘符... 2

三、挂载文件系统基础知识及挂载参数... 3

四、自动挂载... 5

五、其他参考... 6

 

一、在虚拟机下添加windows其他分区

编辑虚拟机设置》添加》硬盘》使用物理磁盘》警告》确定》使用单个分区》根据盘的大小可知道对应的windows分区,勾上即可

 二、查找Linux对应的设备盘符

你首先应该判定 Windows 分区的位置,判定它所在的物理硬盘(如首要主 IDE 或第一个 SCSI 驱动器)。要找出这项信息,你可以使用硬件浏览器。该程序列出了你的 Red Hat Linux 系统上的详细硬件信息。

要启动 硬件浏览器,选择「主菜单」 => 「系统工具」 => 「硬件浏览器」。 显示了运行中的硬件浏览器。

硬件浏览器中的硬盘设备列表

从面板上选择「硬盘驱动器」,然后从所显示的「磁盘信息」中找出你的 Windows 分区。Windows 分区通常使用 FAT FAT32 文件系统类型。该文件系统类型可以在 Linux 中被挂载和读取;不过,如果你的 Windows 分区使用 NTFS,你就不能够这么做,因为 Red Hat Linux 不支持 NTFS 文件系统。请留意关于你的 Windows 分区的「设备」信息,因为这就是你要挂载以便访问 Windows 数据的设备。

 

三、挂载文件系统基础知识及挂载参数

linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。这里所说的按一定方式就是指的挂载。将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该子目录称为挂载点。举个例子吧:根分区:/根目录 ┏━━━━┳━━━━━┳━━━━━┳━━━━━╋━━━━━┳━━━━━┳━━━━━┳━━━━━┓ bin home dev etc lib sbin tmp usr var ┏━┻━┓ rc.d cron.d ┏━━━┳━━━┳━┻━┳━━━━┓ init.d rc0.d rc1.d rc2.d …… /usr分区 usr ┏━━━━┳━━━╋━━━┳━━━┳━━━┓ X11R6 src lib local man bin ┏━━━╋━━━┓ linux bin lib src 注意:1、挂载点必须是一个目录。一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。对于其他操作系统建立的文件系统的挂载也是这样。但是需要理解的是:光盘、软盘、其他操作系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。光盘是ISO9660;软盘是fat16ext2windows NTfat16NTFSwindows98fat16fat32windows2000windowsXPfat16fat32NTFS。挂载前要了解linux是否支持所要挂载的文件系统格式。挂载时使用mount命令:格式:mount [-参数] [设备名称] [挂载点]其中常用的参数有-t<文件系统类型> 指定设备的文件系统类型,常见的有:minix linux最早使用的文件系统ext2 linux目前常用的文件系统msdos MS-DOSfat,就是fat16vfat windows98常用的fat32nfs 网络文件系统iso9660 CD-ROM光盘标准文件系统ntfs windows NT 2000的文件系统hpfs OS/2文件系统auto 自动检测文件系统-o<选项> 指定挂载文件系统时的选项。有些也可用在/etc/fstab中。常用的有codepage=936 代码页 (中文支持,很重要)iocharset=cp936 字符集ro 以只读方式挂载rw 以读写方式挂载nouser 使一般用户无法挂载user 可以让一般用户挂载设备提醒一下,mount命令没有建立挂载点的功能,因此你应该确保执行mount命令时,挂载点已经存在。(不懂?说白了点就是你要把文件系统挂载到哪,首先要先建上个目录。这样OK?)例子:linux装在hda1分区,同时计算机上还有软盘和光盘需要挂载。# mk /mnt/winc# mk /mnt/floppy# mk /mnt/cdrom# mount -t vfat /dev/hda1 /mnt/winc# mount -t msdos /dev/fd0 /mnt/floppy# mount -t iso9660 /dev/cdrom /mnt/cdrom现在就可以进入/mnt/winc等目录读写这些文件系统了。要保证最后两行的命令不出错,要确保软驱和光驱里有盘。(要是硬盘的磁盘片也可以经常随时更换的话,我想就不会犯这样的错误了 :-> 如果你的windows98目录里有中文文件名,使用上面的命令挂载后,显示的是一堆乱码。这就要用到 -o 参数里的codepage iocharset选项。codepage指定文件系统的代码页,简体中文中文代码是936iocharset指定字符集,简体中文一般用cp936gb2312当挂载的文件系统linux不支持时,mount一定报错,如windows2000ntfs文件系统。可以重新编译linux内核以获得对该文件系统的支持。关于重新编译linux内核,就不在这里说了。

四、自动挂载

每次开机访问windows分区都要运行mount命令显然太烦琐,为什么访问其他的linux分区不用使用mount命令呢?其实,每次开机时,linux自动将需要挂载的linux分区挂载上了。那么我们是不是可以设定让linux在启动的时候也挂载我们希望挂载的分区,如windows分区,以实现文件系统的自动挂载呢?这是完全可以的。在/etc目录下有个fstab文件,它里面列出了linux开机时自动挂载的文件系统的列表。我的/etc/fstab文件如下:dding /etc/fstab

LABEL=/                 /                       ext3    defaults        1 1

LABEL=/boot             /boot                   ext3    defaults        1 2

none                    /dev/pts                devpts  gid=5,mode=620  0 0

none                    /proc                   proc    defaults        0 0

none                    /dev/shm                tmpfs   defaults        0 0

/dev/hdc9               swap                    swap    defaults        0 0

/dev/cdrom              /mnt/cdrom              udf,iso9660 noauto,owner,kudzu,ro 0 0

/dev/hdc7               /mnt/study               vfat auto,codepage=936,iocharset=cp936,umask=0 0 0

/dev/hdc6               /mnt/software             vfat auto,codepage=936,iocharset=cp936,umask=0 0 0

/dev/hdc1               /mnt/system              vfat auto,codepage=936,iocharset=cp936,umask=0 0 0

/dev/hdc5               /mnt/windows            vfat auto,codepage=936,iocharset=cp936,umask=0 0 0

 

/etc/fstab文件里,第一列是挂载的文件系统的设备名,第二列是挂载点,第三列是挂载的文件系统类型,第四列是挂载的选项,选项间用逗号分隔。第五六列不知道是什么意思,还望高手指点。在最后两行是我手工添加的windows下的CD盘,加了codepage=936iocharset=cp936参数以支持中文文件名。参数defaults实际上包含了一组默认参数:rw 以可读写模式挂载suid 开启用户ID和群组ID设置位dev 可解读文件系统上的字符或区块设备exec 可执行二进制文件auto 自动挂载nouser 使一般用户无法挂载async 以非同步方式执行文件系统的输入输出操作大家可以看到在这个列表里,光驱和软驱是不自动挂载的,参数设置为noauto。(如果你非要设成自动挂载,你要确保每次开机时你的光驱和软驱里都要有盘)

 

五、其他参考

访问 Windows 分区

判定了 Windows 分区在你的硬盘驱动器上的位置后,在 shell 提示下登录为根用户(键入 su,然后输入根口令)。

键入下面的命令来创建一个挂载 Windows 分区的目录。例如:

mkdir /mnt/windows

在你访问该分区前,你需要把它挂载到你刚刚创建的目录中。在 shell 提示下以根用户身份键入下列命令,这里的 /dev/hda1 是你通过硬件浏览器找到的 Windows 分区。

mount -t vfat(文件系统类型,982000xp可能不同)  /dev/hda1(分区盘符)  /mnt/windows(分区所挂载的位置,windows下的不同分区可以取不同名字)

然后,你便可以从根用户状态中注销,并改换到被挂载了的 Windows 分区中来存取 Windows 数据了:

cd /mnt/windows

要在你每次引导 Red Hat Linux 系统时自动挂载 Windows 分区,你必须修改 /etc/fstab 文件。该文件配置了所有文件系统和磁盘设备的挂载选项。

shell 提示下,用 su 变成根用户,然后遵循上面的例子。

下一步,用文本编辑器打开 /etc/fstab 文件,例如:

gedit /etc/fstab

在一个新行上添加下列信息(把 /dev/hda1 替换成你通过 硬件浏览器找到的 Windows 分区):

/dev/hda1  /mnt/windows  vfat auto,umask=0 0 0

保存文件并退出文本编辑器。

在系统下次重新引导时,/etc/fstab 文件会被读取,Windows 分区会被自动挂载到目录 /mnt/windows 中。要在 shell 提示下访问该分区,键入 cd /mnt/windows 命令。要进入带有空格的目录或文件,使用引号把目录或文件名包围起来,如 ls "Program Files"