SDB:访问您的 Windows 文件

跳转到:导航搜索


当前的openSUSE版本会自动检测你的Windows分区并使其在openSUSE中可访问。本文包含更深入的信息和技巧。

在 openSUSE 上测试

推荐文章



背景

在具有Windows双引导系统的环境中,你通常需要在系统之间交换数据。目前,还没有完美的解决方案。这是因为Windows和Linux具有不同的(主要是安全)机制。因此,这些操作系统中的每一个都无法完全支持另一个的文件系统。

在openSUSE中,安装程序会检测到Windows的安装,并设置挂载Windows分区(如果已安装)。但是,为了安全起见,你应该使用一个单独的分区来交换数据,以防止你的Linux和Windows系统数据被意外修改。问题是应该使用哪种文件系统来创建这个分区。

在两个世界中都完全支持的唯一文件系统是FAT32(FAT12和FAT16也受支持,但已过时)。FAT32不支持限制用户访问权限,并且文件大小限制为4GB。如果你能接受这些限制,那么使用FAT32的单独分区是交换数据的最佳解决方案。

如果你需要使用大于4GB的文件(例如DVD镜像),你可以使用ext2或NTFS作为交换分区的的文件系统。对于NTFS分区,你可以使用openSUSE中的 ntfs-3g 包。对于ext2分区,你可以使用一些工具,例如 Explore2fsExt2 IFSExt2FsdExt2Read。但是请注意,这些ext2工具之间存在一些功能差异。例如,LVM2支持、递归复制文件/文件夹的能力、可移植性或ext4支持各不相同。

另一种完全不同的方法是使用开源项目 VirtualBox 或商业 VMware,它们也允许在主机和客户操作系统之间交换数据。



如何准备用于交换数据的分区

如果你的机器没有用于交换数据的分区,你应该执行以下步骤。

Icon-warning.png
警告: 在执行此过程期间,尤其是当你需要调整任何分区大小时,你应该首先备份你的数据!

缩小现有分区

如果你的机器在分区表中没有可用空间,你应该在创建新分区之前缩小现有分区。如果有可用空间,请跳过此部分并转到 #创建/格式化新分区

要缩小Linux(ext2/ext3/ext4等)分区,你可以使用openSUSE救援介质,该介质可在 openSUSE下载页面 上找到。救援介质可以像安装介质一样启动。从救援介质启动后,选择“openSUSE”菜单(位于左下角)->“系统”->“GParted”。在GParted窗口中,单击要缩小的分区,选择“分区”菜单->“调整大小/移动”。在“调整大小/移动”窗口中,增加“后继空闲空间”的值。此大小将是空闲空间。如果无法增加它,则表示你的分区已完全使用。尝试使用文件管理器(“openSUSE”菜单->“系统”->“Thunar文件管理器”)删除不必要的文件,然后重试。增加“后继空闲空间”值后,单击“调整大小/移动”和“应用”。缩小后,你可以再次启动openSUSE。

要缩小Windows(FAT/NTFS等)分区,你可以从Windows本身执行此操作。请参阅 Microsoft Technet文章 作为示例。


创建/格式化新分区

可以使用 YaST(用于Linux文件系统)或Windows工具(用于Windows文件系统)创建新分区。启动YaST后,选择“系统”->“分区程序”并按照说明操作。

如果你想将此分区格式化为FAT32或Windows,请不要使用主分区,因为Windows可能会混淆。而是使用扩展分区内的逻辑分区(例如/dev/sda5)。

如果你真的想挂载你的Windows系统分区/dev/sda1,请三思而行,因为你可能会严重损坏你的系统!在这种情况下,创建一个第二个挂载点(例如/windows/system)。我强烈建议仅挂载你的交换分区(在我们的示例中为/dev/sda5)。


挂载选项

分区在Linux中的实际挂载方式受挂载选项的影响。选择你的交换分区->编辑->Fstab选项,并在“任意选项值”下输入它们。也可以在安装后使用编辑器(你的安装设置将被写入文件/etc/fstab)或通过yast2 系统->分区直接完成此操作。

我使用以下选项

utf8,codepage=850,dmask=000,fmask=111,shortname=winnt

“utf8”允许使用特殊字符(例如变音符号),“codepage”需要用于短DOS名称的字符映射(请参阅 代码页 列表),dmask需要允许每个用户查看目录内容,fmask允许每个用户读取和写入文件(但不能执行驻留在交换分区中的任何文件),“shortname”负责短名称和长DOS名称的大小写正确转换。有关更多详细信息,请参阅“man mount”、“man umask”和“man chmod”。

我的交换分区的/etc/fstab行如下所示

/dev/hda5 /windows/data vfat utf8,codepage=850,dmask=000,fmask=111,shortname=winnt 0 0

这些列的含义如下(有关更多详细信息,请参阅“man fstab”)

“/dev/hda5”是物理分区。你可以在yast中选择它,或使用命令“fdisk -l /dev/hda”找到它。

“/windows/data”是挂载点,你将在Linux文件系统层次结构中找到你的Windows数据的位置。Yast会为你创建此目录,否则使用“mkdir -p /windows/data”。

“vfat”是用于FAT32分区的的文件系统类型。

“0 0”告诉系统不要在启动期间检查文件系统。



故障排除

无法缩小现有分区

  • 如果你无法缩小Windows分区