Posts Tagged ‘www linux’

How to mount NTFS Windows XP filesystem on FreeBSD, NetBSD, OpenBSD

Friday, May 11th, 2012

Mounting NTFS hdd partitions on FreeBSD logo picture

A friend of mine bring home a Seagate External Hard Disk Drive using USB 3 as a communication media. I needed to attach the hard disk to my FreeBSD router to transfer him some data, the External HDD is formatted to use NTFS as a main file partition and hence to make the file transfers I had to somehow mount the NTFS partition on the HDD.

FreeBSD and other BSDs, just like Linux does not have embedded NTFS file system mount support.
In order to add an external write support for the plugged hdd NTFS I looked in the ports tree:

freebsd# cd /usr/ports
freebsd# make search name='ntfs'
Port: fusefs-ntfs-2010.10.2
Path: /usr/ports/sysutils/fusefs-ntfs
Info: Mount NTFS partitions (read/write) and disk images
Maint: ports@FreeBSD.org
B-deps: fusefs-libs-2.7.4 libiconv-1.13.1_1 libtool-2.4 libublio-20070103 pkg-config-0.25_1
R-deps: fusefs-kmod-0.3.9.p1.20080208_7 fusefs-libs-2.7.4 libiconv-1.13.1_1 libublio-20070103 pkg-config-0.25_1
WWW: http://www.tuxera.com/community/

Port: ntfsprogs-2.0.0_1
Path: /usr/ports/sysutils/ntfsprogs
Info: Utilities and library to manipulate NTFS partitions
Maint: ports@FreeBSD.org
B-deps: fusefs-libs-2.7.4 libiconv-1.13.1_1 libublio-20070103 pkg-config-0.25_1
R-deps: libublio-20070103 pkg-config-0.25_1
WWW: http://www.linux-ntfs.org/
freebs# cd sysutils/fusefs-ntfs/
freebsd# ls
Makefile distinfo files/ pkg-descr pkg-plist
freebsd# cat pkg-descr
The ntfs-3g driver is an open source, freely available read/write NTFS
driver, which provides safe and fast handling of the Windows XP, Windows
Server 2003 and Windows 2000 filesystems. Almost the full POSIX filesystem
functionality is supported, the major exceptions are changing the file
ownerships and the access rights.
WWW: http://www.tuxera.com/community/

Using ntfs-3g I managed to succeed mounting the NTFS on my old PC running FreeBSD ver. 7_2

1. Installing fuserfs-ntfs support on BSD

Before I can use ntfs-3g, to mount the paritition, I had to install fuserfs-ntfs bsd port, with:

freebsd# cd /usr/ports/sysutils/fusefs-ntfs
freebsd# make install clean
.....

I was curious if ntfsprogs provides other utilities to do the ntfs mount but whilst trying to install it I realized it is already installed as a dependency package to fusefs-ntfs.

fusefs-ntfs package provides a number of utilities for creating, mounting, fixing and doing various manipulations with Microsoft NTFS filesystems.

Here is a list of all the executable utilities helpful in NTFS fs management:

freebsd# pkg_info -L fusefs-ntfs\* | grep -E "/bin/|/sbin|README"
/usr/local/bin/lowntfs-3g
/usr/local/bin/ntfs-3g
/usr/local/bin/ntfs-3g.probe
/usr/local/bin/ntfs-3g.secaudit
/usr/local/bin/ntfs-3g.usermap
/usr/local/bin/ntfscat
/usr/local/bin/ntfscluster
/usr/local/bin/ntfscmp
/usr/local/bin/ntfsfix
/usr/local/bin/ntfsinfo
/usr/local/bin/ntfsls
/usr/local/sbin/mkntfs
/usr/local/sbin/ntfsclone
/usr/local/sbin/ntfscp
/usr/local/sbin/ntfslabel
/usr/local/sbin/ntfsresize
/usr/local/sbin/ntfsundelete
/usr/local/share/doc/ntfs-3g/README
/usr/local/share/doc/ntfs-3g/README.FreeBSD

The README and README.FreeBSD are wonderful, reading for those who want to get more in depth knowledge on using the up-listed utilities.

One utility, worthy to mention, I have used in the past is ntfsfix. ntfsfix resolve issues with NTFS partitions which were not unmounted on system shutdown (electricity outage), system hang up etc.

2. Start fusefs (ntfs) and configure it to auto load on system boot

Once fuserfs-ntfs is installed, if its necessery ntfs fs mounts to be permanently supported on the BSD system add fusefs_enable="YES" to /etc/rc.conf(the FreeBSD services auto load conf).

freebsd# echo 'fusefs_enable="YES"' >> /etc/rc.conf

One note to make here is that you need to have also dbus_enable="YES" and hald_enable="YES" in /etc/rc.conf, not having this two in rc.conf will prevent fusefs to start properly. Do a quick grep to make sure this two variables are enabled:

Afterwards fsusefs load up script should be run:

freebsd# /usr/local/etc/rc.d/fusefs start
Starting fusefs.

Another alternative way to load ntfs support on the BSD host is to directly load fuse.ko kernel module:

freebsd# /sbin/kldload fuse.ko

3. Mounting the NTFS partition

In my case, the Seagate hard drive was detected as da0, where the NTFS partition was detected as s1 (da0s1):

freebsd# dmesg|grep -i da0
da0 at umass-sim0 bus 0 target 0 lun 0
da0: Fixed Direct Access SCSI-4 device
da0: 40.000MB/s transfers
da0: 953869MB (1953525164 512 byte sectors: 255H 63S/T 121601C)br />GEOM_LABEL: Label for provider da0s1 is ntfs/Expansion Drive.
GEOM_LABEL: Label for provider da0s1 is ntfs/Expansion Drive.

Therefore further to mount it one can use mount_ntfs (to quickly mount in read only mode) or ntfs-3g for (read / write mode):

If you need to just quickly mount a disk drive to copy some data and umount it with no need for writting to the NTFS partition do;

freebsd# /sbin/mount_ntfs /dev/ad0s1 /mnt/disk

Note that mount_ntfs command is a native BSD command and have nothing to do with ntfs-3g. Therefore using it to mount NTFS is not the same as mounting it via ntfs-3g cmd

freebsd# /usr/local/bin/ntfs-3g -o rw /dev/da0s1 /mnt/disk/

Something, I've noticed while using ntfs-3g is, it fails to properly exit even when the ntfs-3g shell execution is over:

freebsd# ps ax |grep -i ntfs|grep -v grep
18892 ?? Is 0:00.00 /usr/local/bin/ntfs-3g -o rw /dev/da0s1 /mnt/disk/

I dunno if this is some kind of ntfs-3g bug or feature specific to all versions of FreeBSD or it is something local to FBSD 7.2

Thought ntfs-3g, keeps appearing in process list, praise God as of time of writting NTFS support on FreeBSD prooved to be stable.
Read / Write disk operations to the NTFS I tested it with works great. Just about 5 years ago I still remember write mode was still experimental. Now it seems NTFS mounts can be used with no hassle even on production machines.

4. Auto mounting NTFS partition on FreeBSD system boot

There are two approaches towards 'the problem' I can think of.
The better way to auto mount on boot (in my view) is through /etc/fstab use

If /etc/fstab + ntfs-3g is to be used, you will however change the default /sbin/mount_ntfs command to point to /usr/local/bin/ntfs-3g, i.e.:

freebsd# mv /sbin/mount_ntfs /sbin/mount_ntfs.orig
freebsd# ln -s /usr/local/bin/ntfs-3g /sbin/mount_ntfs

Then to mount /dev/da0s1 via /etc/fstab add line:

/dev/ad0s1 /mnt/disk ntfs rw,late 0 0

To not bother with text editor run:

freebsd# echo '/dev/ad0s1 /mnt/disk ntfs rw,late 0 0' >> /etc/fstab

I've red in posts in freebsd forums, there is also a way to use ntfs-3g for mounting partitions, without substituting the original bsd /sbin/mount_ntfs, the exact commands suggested to be used with no need to prior mv /sbin/mount_ntfs to /sbin/mount_ntfs.orig and link it to ntfs is:

/dev/ad0s1 /disk ntfs rw,mountprog=/usr/local/bin/ntfs-3g,late 0 0

For any other NTFS partitions, for instance /dev/ad0s2, /dev/ad2s1 etc. simply change the parititon name and mount points.

The second alternative to adding the NTFS to auto mount is through /etc/rc.local. /etc/rc.local content will be executed very late in system boot. :

echo '/usr/local/bin/ntfs-3g -o rw /dev/da0s1' >> /etc/rc.local

One disadvanage of using /etc/rc.local for mounting the partition is the hanging ntfs-3g in proc list:

freebsd# ps ax |grep -i ntfs|grep -v grep
18892 ?? Is 0:00.00 /usr/local/bin/ntfs-3g -o rw /dev/da0s1 /mnt/disk/

Though, I haven't tested it yet. Using the same methodology should be perfectly working on PC-BSD, DragonFlyBSD, NetBSD and OpenBSD.
I will be glad if someone who runs any of the other BSDs can confirm, following this instructions works fine on these BSDs too.

How to turn ordinary Linux to a game station / Best Games to install and play on Debian Linux

Thursday, April 14th, 2011

Linux install best Games logo
Hereby in this article I’ll in short give you a quick way to install a number of my favourite linux games. In my view the games I’m going to suggest for installation are actually among the best existent games you could install and play on a Linux Desktop today.

Many people say/believe Linux does not have games, or the games for Linux/BSD are not fully featured and are not comparable to the ones for Windows, most of this sayings and beliefs are actually a fairy tales.
I should admit of course that Linux is still lacking behind in its gaming capabilities, even quite behind any Windows platform (Don’t get me wrong, I’m trying to be as much realistic as possible here in my estimation).

However little by little year by year as time passes by with time the situation for the coming generation of Linux Gamers is gettings better and better!.
The amount of free and non-free games is rising day by day, wheter
many of the large game producing companies like Blizzard, ID Software etc. are producing ports of their proprietary games for Linux.

Along with that the amount of Linux Enthusiast gamers and hobbyist is constantly increasing.

At the present moment probably there are more than 5000 games for Linux!
Many of that games count still requires heavy testing or are not yet production ready and therefore they don’t make it as a packages in the general Linux distributions repositories. These games are instead published on a various websites across the internet and still needs our (the linux hobbyist and daily users) testing and support
Linux has a number of websites which aims at inform interested users into the Linux games development, the major ones as far as I have found are:

  • http://happypenguin.org
  • http://www.linux-gamers.net

In Debian (Squeeze) Linux currently there are an overall of 1815 free and non-free games packages to available for installation
I have a favourite number of games I do install on each and every computer I use as a desktop workstation.

These Linux games are truly a blessing especially in times I’m too tired of reading, scripting or being too overwhelmed of doing my daily system administration duties.

To install my selected games collection on your Debian, Ubuntu or any other debian based Linux with apt-get use the command:

debian:~# apt-get install open-invaders bsdgames-nonfree scummvm
briquolo abuse abuse-frabs dosbox pingus wesnoth brutalchess
dreamchess gnuchess kamefu frozen-bubble bomberclone
lbreakout2 armagetron defendguin dodgindiamond2
rocksndiamonds blobwars wing xgalaga
extremetuxracer planetpenguin-racer
powermanga sauerbraten supertux tecnoballz torus-trooper
trackballs tumiki-fighters zblast-x11 criticalmass xbill
viruskiller snowballz freedoom wormux bugsquish gtetrinet njam
starfighter prboom bb xsoldier xevil gnome-breakout xarchon
moon-lander trophy lincity-ng alienblaster scorched3d ltris
smc foobillard warsow tremulous glest warzone2100 matanza
ace-of-penguins

I have created a small script containing the same apt-get, so I would advice you if you’re keen on Linux gaming like me to use it for yourself and for all your friends who runs Linux.
Download my turn-linux-into-gamestations.sh script here

If you want to install the Linux games list with the turn-linux-into-gamestation.sh use cmds:


debian:~# wget http://www.pc-freak.net/bshscr/turn-linux-into-gamestation.sh
debian:~# chmod +x turn-linux-into-gamestation.sh
debian:~# ./turn-linux-into-gamestation.sh

If you want to take a look a quick look over the gaes description included in
my best linux games to install compilation

Please see my best games collection linux desciption file here

Along with the game desciptions in my recommended games to install description you are about to find also the size of each of the games and the repository filename of the package that installs a games or relates to the linux game.

To extract the games descriptions I have used apt-cache

Here is the exact apt-cache show comman in combination with a little shellscript loop I have used to generate the games desciption file of my favourite Linux games list:

for i in $(echo open-invaders bsdgames-nonfree scummvm briquolo abuse abuse-frabs dosbox pingus wesnoth brutalchess dreamchess gnuchess kamefu frozen-bubble bomberclone lbreakout2 armagetron defendguin dodgindiamond2 rocksndiamonds blobwars wing xgalaga extremetuxracer planetpenguin-racer powermanga sauerbraten supertux tecnoballz torus-trooper trackballs tumiki-fighters zblast-x11 criticalmass xbill viruskiller snowballz freedoom wormux bugsquish gtetrinet njam starfighter prboom bb xsoldier xevil gnome-breakout xarchon moon-lander trophy lincity-ng alienblaster scorched3d ltris smc foobillard warsow tremulous glest warzone2100); do apt-cache show $i |grep -v "Priority:" |grep -v "Section:" |grep -v "Maintainer:" |grep -v "Depends:" |grep -v "Architecture:"|grep -v "SHA1:" |grep -v "SHA256:"|grep -v "Recommends:"|grep -v "MD5sum:" >>games_description.txt;
done

Note that some of the games will require a properly configured opengl / glx configured and will require a bit more solid system hardware in order be able to play some of the games.

Also some of games from my linux favor game list are space demanding, some of the games will require (up to about 300mb of space).

Nevertheless as I presume nowdays most Linux desktops runs some no more than 3, 4 years old hardware I assume the minimal hardware requirements necessery to be able to run and play all the games from the above list won’t be a problem.

On my system all of my selected linux games collection runs without any performance issues, though some of the games has some minor sound problems (for some weird uknown to me reasons).

I’m using an ordinary Thinkpad R61 notebook with a Debian Squeeze 6.0 installation with Gnome on my desktop.
My basic hardware parameters which runs all the linux games smoothly are as follows:

Notebook Thinkpad R61 with

CPU: Intel Core 2 Duo 1.8Ghz
Memory: 2GB
HDD: 160GB

To start up and play the games in a Gnome desktop look up for the games in gnome menus:

Application -> Debian -> Games
or
Application -> Games

If you want to only install only the games which will surely run on lower computer hardware let’s say with: CPU Pentium 166~300 Mhz and some lower amount of memory like 128MB of memory or 128 mbytes of system memory, I would suggest you run the apt-get command:



debian:~# apt-get install bsdgames-nonfree
abuse abuse-frabs pingus brutalchess
gnuchess kamefu frozen-bubble bomberclone lbreakout2 armagetron defendguin dodgindiamond2
rocksndiamonds blobwars xgalaga matanza ace-of-penguins
powermanga supertux tecnoballz
zblast-x11 xbill
viruskiller freedoom wormux bugsquish njam
starfighter prboom bb xsoldier xevil gnome-breakout xarchon
moon-lander trophy lincity-ng

All left is to check out the newly installed linux games and to enjoy them.