# $Id$ # Main page of 'My::Project::captive' # Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; exactly version 2 of June 1991 is required # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA package project::captive::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; use strict; use warnings; use My::Web; Wuse 'project::Lib'; our @ListItem=( "name"=>"Captive", "platform"=>"unixuser", "priority"=>666, "summary"=>"The first free NTFS read/write filesystem for GNU/Linux", "license"=>"GPL", "maintenance"=>"update", "language"=>"i386 asm, C, Perl", "icon"=>"captive-install-acquire-icon", "cvs-of main tree"=>"captive", "cvs-of branched ReactOS subdir"=>"reactos:captive", "cvs-of branched LUFS"=>"lufs:captive", "cvs-of 'httpcaptive://' method"=>"gnome-vfs-httpcaptive:captive", "cvs-of 'libntfs://' method"=>"ntfsprogs-gnomevfs", "description"=>sub { return <<"HERE"; },

Project implements the first full read/write free access to NTFS disk drives. You can mount your Microsoft Windows NT, 200x or XP partition as a transparently accessible volume for your GNU/Linux.

This compatibility was achieved in the @{[ a_href 'http://www.winehq.com/','Wine' ]} way by using the original Microsoft Windows ntfs.sys driver. It emulates the required subsystems of the Microsoft Windows kernel by reusing one of the original ntoskrnl.exe, @{[ a_href 'http://www.reactos.com/','ReactOS' ]} parts, or this project's own reimplementations, on a case by case basis. Project includes the first open source MS-Windows kernel API for Free operating systems. Involvement of the original driver files was chosen to achieve the best and unprecedented filesystem compatibility and safety.

As opposed to other projects this is currently the only software supporting the full read/write access including the possibility to create/delete files, modify directories etc.

HERE ); sub handler { my $W=project::Lib->init( "no_project_data"=>1, "css_push"=>"./Index.css", "project_text_after_title"=>sub { return "" .'' .'' .'' .'' .'' .'' .'' .'' .'' }, ); print <<"HERE" if !$W->{"no_job"}; @{[ vskip "3ex" ]}
Looking for a challenging job: @{[ a_href $W->{"resume_url"},"My resume" ]}
HERE my %version=( map(($_=>["1.1.5","0"]),qw(captive captive-lufs captive-install)), "lufs"=>["0.9.7","1captive8"], ); print <<"HERE";

Download

Choose the one preferred installation format:

RPM i386 binary
tested for distributions:

  • Red Hat 9 Shrike
  • Red Hat 8 Psyche
  • SuSE 9.0
  • SuSE 9.1
  • Mandrake 9.1 Bamboo
@{[ a_href 'dist/captive-static-'.$version{"captive"}[0].'-'.$version{"captive"}[1].'.i386.rpm', undef(),"size"=>1,"basename"=>1 ]}

.tar.gz i386 binary
(for non-RPM distributions)

@{[ a_href 'dist/captive-static-'.$version{"captive"}[0].'.tar.gz',undef(),"size"=>1,"basename"=>1 ]}
Source archives @{[ a_href 'CVS.pm#source','download link' ]}

Development Status

Project is no longer developed. The key functionality is reached by the latest released version. All its resources are available @{[ a_href 'CVS.pm#source','here' ]} for download.

Known Issue

Captive was written to interface with the Linux kernel via @{[ a_href 'http://lufs.sourceforge.net/lufs/','LUFS' ]}. Unfortunately, this project is no longer being maintained by its author. Mounting of NTFS devices usually works, but is no longer supported by the author of Captive. Always unmount the device by umount(8) command before shutting down your GNU/Linux system.

A port of Captive to the newer @{[ a_href 'http://fuse.sourceforge.net/','FUSE' ]} interface has not yet been implemented. There is an experimental LUFS-FUSE bridge called @{[ a_href 'http://sourceforge.net/project/showfiles.php?group_id=121684','lufis' ]} that can be used in the meanwhile. Also, the captive-cmdline(1) interface will get around any kernel compatibility problems.

@{[ vskip "3ex" ]}

NEWS

captive-1.1.5 (2004-01-18) [@{[ a_href $W->{"project_viewcvs"}.'/*checkout*/captive/NEWS?rev=HEAD','archive' ]}]
  • Fixed ignorance of the file truncate operation via LUFS (Matthias R.)
  • Support for reading of HIDDEN SYSTEM NTFS files via LUFS
  • Fixed refusal to mount some NT4.0 NTFSes (Nerijus Baliunas, Scott Chevalley)
  • Support /dev/ataraid devices (Ivan Tonov)
lufs-0.9.7captive8 (2003-12-06) [@{[ a_href $W->{"project_viewcvs"}.'/*checkout*/lufs/NEWS.captive?rev=1.1.2.11','archive' ]}]
@{[ vskip "3ex" ]}

Captive NTFS Testimonials

@{[ a_href 'Press.pm','Internet Press' ]}

@{[ vskip "3ex" ]}

Installation Notes

You should first run captive-install-acquire command to check your available Microsoft Windows drivers versions. Now you can execute:

# captive-cmdline \\ --load-module=/var/lib/captive/ntoskrnl.exe \\ --filesystem=/var/lib/captive/ntfs.sys \\ --sandbox-server=/usr/sbin/captive-sandbox-server \\ --bug-pathname=/tmp/captive-bug-%FT%T.captivebug.xml.gz \\ --disk --rw /dev/hda1 # Now you can use ftp(1)-like command-line interface for the NTFS disk access.

(Backslash end-of-line characters '\\' to be omitted for line continuation.)

Overview

Any errors from 'captive-lufs' are written to '/var/log/messages'.

Needed drivers (at least ntoskrnl.exe+ntfs.sys) must be in '/var/lib/captive'.

'captive' package creates 'captive' user and 'captive' group on your system.

LUFS Kernel Driver Module

@{[ a_href 'http://lufs.sourceforge.net/lufs/','LUFS' ]} (Linux Userland File System) needs Linux kernel module driver (lufs.o) compatible with your running Linux kernel. The binary driver is supplied already precompiled for many Linux kernel versions in the binary packages above (.i386.rpm and _i386.deb archives).

If you cannot mount(8) your NTFS filesystem you should run /usr/share/lufs/prepmod to see the reasons. It is always recommended to upgrade to the latest stable kernel supplied by your GNU/Linux distribution vendor. You may need to install package kernel-source (Red Hat) or kernel-headers (Debian) matching your Linux kernel version (rpm -q kernel) and re-run /usr/share/lufs/prepmod.

WARNING: This 'captive' package may modify your Linux kernel sources matching your currently running kernel version. These minor modifications may include a dependencies rebuild, compiling build tools, fixes of several include files, etc. All the modifications are done at the mount(8) time by the automatically executed /usr/share/lufs/prepmod script. This behavior was not present in the original @{[ a_href 'http://lufs.sourceforge.net/lufs/','LUFS' ]} distribution by @{[ a_href 'http://www.malinux.net/main/','Florin Malita' ]}.

HERE print rightimg <<"HERE",'reactos','ReactOS',"a_href"=>'http://www.reactos.com/';

The First Open Source MS-Windows Kernel API for Free OS

Compatibility with the existing binary Microsoft Windows file system drivers has been reached. Microsoft Windows kernel system components required by these drivers were analyzed and successfully emulated in the GNU/Linux operating system. The project brings the Microsoft Windows kernel emulation framework to support even other types of Microsoft Windows drivers in the future. The @{[ a_href 'http://www.reactos.com/','ReactOS' ]} code base proved to be a big asset for this functionality.

HERE my @lists=qw(captive-announce-list captive-list captive-devel-list); print <<"HERE";

Mailing Lists

@{[ map('',@lists) ]}@{[ map({ ""; } @lists) ]}@{[ map({ ""; } @lists) ]}@{[ map((''),@lists) ]}
'.$_.'@jankratochvil.net
New version announcements
(low traffic, recommended)
User support,
bug reports
Development
".a_href($W->{"mailman_url"}."listinfo/$_",'Mailman Infopage')."
".a_href($W->{"pipermail_url"}."$_",'Archive')."
Subscribe?
Email address:
Your new Mailman password:
Reenter your password:

@{[ vskip "3ex" ]}

See Also

HERE exit; } 1;