`
eidolon
  • 浏览: 40646 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在Linux上实现对UFS文件系统的读写支持

阅读更多
背景:

最近在使用XEN虚拟机,XEN官方目前发布的内核只有2.6.18的版本。现在需要在Linux上挂载(mount)FreeBSD的Image文件,并进行写操作。FreeBSD使用的文件系统是UFS2,但2.6.18的内核上只能对UFS进行读操作,写的操作是从2.6.21的内核才开始支持的。

实现:

因此,为了在2.6.18上也支持写操作,需要做如下工作:

  1. 对源码进行PATCH,PATCH文件见附件。解压在kernel源码根目录,解压后进入patch_ufs_write_support目录,执行patch.sh,若要取消PATCH,则执行upatch.sh。
  2. make menuconfig,并将File systems ---> Miscellaneous filesystems ---> 下的UFS file system support (read only)选择成,UFS file system write support (DANGEROUS)选择成[ * ],保存后make modules。
  3. 将编译出来的 fs/ufs/ufs.ko 拷贝到 /lib/modules/$(uname -r)/kernel/fs/ufs/ufs.ko,重新加载模块即可(modproper ufs)。
  4. 为了让ufs模块启动时自动加载,可以将附件中 rc.sysinit.ufs 内容追加到 /etc/rc.sysinit 文件中(cat rc.sysinit.ufs >> /etc/rc.sysinit)。
使用:

使用有点特殊,需要remount,示例如下:

$ mount -t ufs -oloop,rw,offset=32256,ufstype=ufs2 FreeBSD.img /mnt/freebsd
此时挂载后仍是只读

$ touch /mnt/freebsd/testfile
提示只读无法写入

$ mount -o remount,rw /mnt/freebsd
重新挂载成读写模式

$ touch /mnt/freebsd/testfile
此时写入成功

$ umount /mnt/freebsd


附件的PATCH文件是网上找到的,是针对2.6.20-rc5的PATCH,经过比对、整理以及部分的修改后形成了这个针对linux-2.6.18-xen-3.4.2的PATCH文件。
0
1
分享到:
评论

相关推荐

    linux SCSI-UFS协议总图

    详细介绍了linux中关于ufs及scsi协议实现,以及和block和文件系统层之间的调用关系:基于linux kernel4.4

    windows原生支持EXT2/EXT3,XFS,Reiserfs,ufs,ffs文件系统插件

    通过对Windows 2000/2003/XP提供对EXT2/EXT3,XFS,Reiserfs文件系统的原生支持,Windows用户能方便地访问Linux分区的数据,并提供本地磁盘级性能。对windows下访问Linux文件有极大帮助。 用法参见:...

    在win下浏览ufs、ext2、ext3文件系统的好工具

    标题中的“在Win下浏览ufs、ext2、ext3文件系统的好工具”指的是在Windows操作系统中查看和操作Unix文件系统(如FreeBSD的UFS、Linux的ext2和ext3)的软件。这类软件通常是为了帮助Windows用户方便地访问和管理在...

    Linux 文件系统与持久性内存介绍.doc

    Linux 文件系统是操作系统的核心组成部分,它负责管理存储设备上的数据,包括组织文件、目录、设备以及其他类型的数据。在Linux中,一切皆文件的概念意味着所有的资源,无论是普通的文本文件、目录还是设备,都被...

    虚拟文件系统V2

    在文件处理编程中,open/close/lseek是常用的系统调用,分别用于打开、关闭文件和移动文件读写位置。这些调用对文件的操作过程有具体的实现细节。目录是一个包含目录项的容器,目录项则指向文件系统中的具体文件或子...

    linux文件系统uxfs2.6

    Linux文件系统UXFS2.6是针对Linux操作系统2.6内核设计的一种文件系统,它在传统的Unix文件系统(如UFS)的基础上进行了优化和改进,以适应Linux环境的需求。在深入探讨UXFS2.6之前,我们首先要理解Linux文件系统的...

    09-RHEL7-Linux文件系统组成与特点

    要理解RHEL7的文件系统组成与特点,我们首先需要了解硬盘的基本结构,接下来详细介绍Linux文件系统的组成部分,最后探讨Linux系统中常见的文件系统类型、软硬链接的创建方式以及不同文件系统的性能对比。 硬盘作为...

    emmc 文件系统优化

    1. 文件系统的类型选择:不同的文件系统拥有不同的特性,如ext3/ext4是广泛使用在Linux系统上的文件系统,提供了良好的性能和兼容性;BTRFS(B-Tree File System)支持高容量存储和快照功能,适用于需要大量数据管理...

    各种文件系统的支持情况对比

    JFS提供高性能和高可靠性,而JFS2在JFS的基础上增加了更大的文件系统大小和支持64位计算的能力。 2. Sun Solaris:Solaris是Oracle公司的一个开源操作系统,它的主要文件系统为UFS(Unix File System),还有ZFS...

    基于fuse的简单文件系统实现

    4. **创建文件和目录**:在实现的Fuse文件系统中,`mkdir()`函数用于创建目录,而`mknod()`或`create()`函数用于创建普通文件。这些函数需要处理权限检查、元数据更新(如修改时间、大小等)和实际的数据存储。 5. ...

    ufsxpci软件Windows读取Linux XFS外接硬盘,用于Windows操作系统读取NAS等硬盘

    ufsxpci是一款专为Windows设计的软件,其主要功能就是提供对XFS文件系统的读取支持,使得用户可以在Windows环境下读取Linux系统上的XFS格式硬盘,比如USB外接硬盘或者NAS网络存储设备。 在使用ufsxpci软件时,用户...

    LINUX文件管理

    在Linux操作系统中,文件管理系统扮演着至关重要的角色,它负责组织和管理磁盘上的数据,使得用户能够有效地访问和操作文件。Linux的文件系统支持多种不同的类型,包括ext、ext2、minix、umsdos、ncp、iso9660、hpfs...

    Linux系统分析与高级编程技术15

    当前,Linux支持大约15种不同的文件系统,包括EXT、EXT2、XIA、MINIX、UMSDOS、MSDOS、VFAT、PROC、SMB、NCP、ISO9660、SYSV、HPFS、AFFS以及UFS。未来随着技术发展,Linux支持的文件系统种类还将持续增加。 在...

    在Linux系统下如何优化Oracle具体步骤

    10. 使用高性能文件系统:如条件允许,可以将Linux分区转换为UFS(Solaris的文件系统),Linux内核支持UFS,且在数据库应用中表现出色。同时,也可以考虑IBM JFS或SGI XFS等64位文件系统。 11. 定制内核:避免使用...

    了解文件系统的入门资料

    相比传统的UFS,ext2在性能上有所提升,并且支持更多的特性,如日志记录和文件系统检查工具。 - **VERITAS VxFS**:VERITAS VxFS是一种高性能的日志文件系统,主要用于高可用性和企业级应用。它采用了先进的日志技术...

    ufs.rar_SOC

    综上所述,这个压缩包包含了与Dialog DA732X音频SoC驱动和UFS存储驱动相关的源代码和文档,对于在Linux系统上开发和调试相关硬件的工程师来说是非常有价值的资源。通过理解和修改这些源代码,开发者可以定制驱动以...

    Linux Virtual File System

    Linux虚拟文件系统(VFS,Virtual File System)是Linux内核中的一个重要组成部分,它为不同的文件系统提供了一个统一的接口,使得操作系统可以透明地访问各种类型的文件系统,无论是本地存储的还是网络上的。...

    Linux系统编程学习笔记

    - **目录和文件**: 包括文件属性的查询 (`stat`)、文件类型和权限的设置 (`chmod`)、文件系统的类型 (`FAT`, `UFS`) 以及目录操作 (`mkdir`, `rmdir`, `opendir`, `readdir`, `closedir`)。 - **系统数据文件和信息...

    Ch08 文件输入输出(1次)1

    例如,UNIX系统采用UFS(UNIX File System),而Linux系统则有多种文件系统,如早期的MINIX、MS-DOS和ext2,以及后来的ext4、JFS和ReiserFS等。在苹果的Mac OS X中,使用的是HFS+和UPFS等。不同的文件系统可能包含...

    osfmount 1.5 汉化版

    通过这个工具,用户可以无需对磁盘进行实际的物理改动,而是创建一个虚拟的挂载点,实现对Linux分区的读写操作,这对于数据迁移、备份或者跨平台的数据处理非常有用。 OSFMount.sys 是驱动程序文件,它是osfmount...

Global site tag (gtag.js) - Google Analytics