Yet Another Concept of Custom Manageable FTP (Part II)

Hi! The article of the custom manageable FTP is now continue. To read previous part content, please click on this link (http://paparadit.blogspot.com/2012/04/yet-another-concept-of-custom.html). It will explained step-by-step about setting up virtual users on FTP server. To make your mind clear, if you have 10 FTP servers, the setting must installed in each machine.

A most tricky part is the authentication & uploader sub-routines. Before I explain it technically, here is a pseudo-concept:

  1. Provide users DB on a opt. DB Server.
  2. Provide a single HTTP Server for user authentication.
  3. Once a user has been successfully authenticated as well in front-end system, get the IP of FTP Server where they allowed to make a link.
  4. Also create immediately the FTP user using htpasswd feature and create all of the FTP environments (including home directory and it's permissions).
  5. Try to adding information to the file uploaded from client or some kind like that to securing it. Eg: a complete date string attached to file name will avoid it replaced by the same file or try to replace an empty space in file name into "_" characters, etc, etc.
  6. If there's file uploaded from user, make a direct stream connection to FTP server or IP address got from point #3, using ftp_connect, ftp_login and ftp_put (with additional FTP_AUTORESUME parameter).
  7. After file transferred successfully, move it to final destination.
  8. Freeing all buffer before quitting to save memory.

So, on this experiment, I currently using 3 MySQL tables; the user table, the ftp server mapping table & logging table. Take a look at below user table (m_users):


The table contain 3 fields only. The branch field indicate the unit code referring where the user come from. Create a dummy record on it like below example picture:


While ftp server mapping table only contains 2 fields (m_ftp).


The branch_grp field, contains 2 digit left of the unit code. It's described where the dedicated FTP will take place. Insert 3 dummy records as shown on below picture, as we'll use a real 10.6.1.19 machine:


The last table (m_log), purposed for transaction logging. Replacing a common /var/log/vsftpd.log file. The records will auto-inserted later by the system.


Next, let's create UI form. This form contains user ID, password and a file type object, also a submit button.

So, when submit button pressed, the system will executing authentication to database & creating FTP users in realtime mode. The creation of realtime FTP users will be made from SSH connections - automatically. So, normally we need libssh2.so and OpenSSL (http://www.php.net/manual/en/book.ssh2.php) natively installed on the web server. If your server luckily have it, test it with phpinfo files. It will displayed like below picture:


Anyway, if you found difficult to installed it manually, you'll no find anything on phpinfo file.


Since the installation of libssh2.so (and all of the dependencies) will takes time and too much complicated, so I'll using third party libraries which give the same basic function (and it's much easier). It named as phpseclib. Download it & place it to lib folder under the web server (/var/www/html/lib).

First, try the demo files. If it failed to upload a file to one of FTP server, then take a look at Linux firewall and SELinux configuration by running setup in console.


Even it show disabled, you still need to read /etc/selinux/config file exactly. In my experiments - weirdly - it's shows that the SELinux still in enforcing mode:


So, you must edit it to "disable":


Save it, reboot and make sure that the phpseclib demo file running successfully. Only if you're sure that all above tested and worked 100%, then, here below what belong on core PHP file (the front-end system):

<?
if (isset($_POST['SUBMIT']))
{
// DB initialization
define("DB_HOST", "db.host.or.ip");
define("DB_USER", "db_user");
define("DB_PASS", "db_pass");
define("DB_NAME", "db_ftp");
$link=mysql_connect(DB_HOST,DB_USER,DB_PASS);
mysql_select_db(DB_NAME);
$usr=$_POST['usr'];
$passwd=$_POST['passwd'];
if ($_FILES['filenya']['size']!=0) $imageexist=true;
else $imageexist=false;

// HTTP authentication
$r=mysql_query("select * from m_users where usr='$usr' and passwd='$passwd'");
$num=mysql_num_rows($r);
if (($num==1) && ($imageexist))
{
while ($row=mysql_fetch_array($r)) {
$branch=$row['branch']; }

$r=mysql_query("select * from m_ftp where branch_grp=left('$branch',2)");
while ($row=mysql_fetch_array($r)) {
$ip_ftp=$row['ip_ftp'];
$branch_grp='kan' . $row['branch_grp']; }

$ftp_user_name=$usr;
$ftp_user_pass=$passwd;
$ftp_server=$ip_ftp;
$imagefile=$_FILES['filenya']['tmp_name'];
$imagefile_name=strtolower($_FILES['filenya']['name']);
$imagefile_name=str_replace(' ','_',$imagefile_name);
$imagefile_name=date ('Y-m-d',mktime(date('H'),date('i'),date('s'),date('m'),date('d'),date('Y'))) . '_' . $imagefile_name;
$destination_file=$imagefile_name;

// create virtual users to selected FTP
include('lib/phpseclib/SSH2.php');
$ssh = new Net_SSH2($ftp_server);
if (!$ssh->login('root', 'ftp_svr_password')) exit('Login Failed');
$ssh->exec('htpasswd -b /etc/vsftpd/vsftpd.passwd ' . $ftp_user_name . ' ' . $ftp_user_pass);
$ssh->exec('mkdir /var/www/users/' . $ftp_user_name);
$ssh->exec('chown vsftpd:ftp_users /var/www/users/' . $ftp_user_name);

// connect, login, and transfer the file
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
$upload = ftp_put($conn_id, $destination_file, $imagefile, FTP_BINARY, FTP_AUTORESUME);

// check it if succeed
if (ftp_size($conn_id,$destination_file)!=0) {
mysql_query("insert into m_log values('$ftp_user_name','$destination_file',now())");
$ssh->exec('mv /var/www/users/' . $ftp_user_name . '/' . $destination_file . ' /var/www/users/' . $branch_grp);
echo("<script>alert('File $destination_file OK!')</script>"); }
else echo("<script>alert('Failed to upload $imagefile_name')</script>");

// freeing buffer
mysql_free_result($r);
$ssh->exec('htpasswd -D /etc/vsftpd/vsftpd.passwd ' . $ftp_user_name);
$ssh->exec('rmdir /var/www/users/' . $ftp_user_name);
$ssh->exec('exit');
ftp_close($conn_id);
}
else echo("<script>alert('Authentication failed or no file uploaded!')</script>");
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>FTP Concept</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="index.php" method="post" enctype="multipart/form-data" name="form1">
<table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr bgcolor="#000000"> <td colspan="3">
<font color="#FFFFFF">&#8226; <strong><font size="2" face="Geneva, Arial, Helvetica, sans-serif">
Manageable FTP with PHP (&copy; 2012 by Eko Wahyudiharto)</font></strong></font></td> </tr>
<tr> <td width="11%"><font size="2" face="Geneva, Arial, Helvetica, sans-serif">User Name</font></td>
<td width="2%"><font size="2" face="Geneva, Arial, Helvetica, sans-serif">:</font></td>
<td width="87%"><input name="usr" type="text" id="usr"></td> </tr>
<tr> <td><font size="2" face="Geneva, Arial, Helvetica, sans-serif">Password</font></td>
<td><font size="2" face="Geneva, Arial, Helvetica, sans-serif">:</font></td>
<td><input name="passwd" type="password" id="passwd"></td> </tr>
<tr> <td><font size="2" face="Geneva, Arial, Helvetica, sans-serif">File to Upload</font></td>
<td><font size="2" face="Geneva, Arial, Helvetica, sans-serif">:</font></td>
<td><input name="filenya" type="file" id="filenya"></td> </tr>
<tr> <td>&nbsp;</td> <td>&nbsp;</td>
<td><input type="submit" name="SUBMIT" value="Submit"></td> </tr> </table>
</form>
</body>
</html>

Save it and run it from browser. Try to upload a file and press submit button:


If there's nothing goes wrong, then my concept is worked perfectly. Take a look at picture below:


It explained that the realtime FTP user generator perfectly creating user P81000. But note that the files uploaded now has move to "kan03" folder (indicating that it could serve as it planned):


Last, take a look at m_log table, here's a record inserted when the file has successfully uploaded. Voila!:


Conclusion:
This concept is tested, worked perfectly and it's ready to use. Even you may add some others functionality to enhance the security it self or others, including the hit performance handle or another environments such as the hardware availability. Have a mayday and please tell me your story on a box below. Thanks.

Labels: , , ,

  Post a Comment

Yet Another Concept of Custom Manageable FTP (Part I)

Dealing with tens of FTP users on a single FTP server is a damn quite easy job since we don't need to maintain hardly those users. It's as simple as creating some users for login on a PC & takes a bit way to create another, delete it or just read the physical log file. But then, how about if we have thousands of dynamic-moving-around users with more than one dedicated FTP servers around us? Well, at least, we're going to need some robots that work 24/7 in order to take care whole of the system. But, unfortunately we're not live in Terminator era that supplies any of it, still.

From below picture, there's a different user accessing different dedicated FTP server. We're talking about huge of FTP users here that will make the log files tracking seems impossible. Hence, also to avoid users storing garbage files to another FTP servers.


Basically, the concept is easy-cake - theoretically, but it's relevant to work on it. First rule is; No one of that FTP servers are browseable from clients & I don't need to create also managed those thousands FTP users manually but I have list contains of it stored in a table of MySQL database (thatís why I use a HTTP authentication server ñ in PHP of course). So, if your condition fit to the situation I described, this article may solve your problem.

The key is to create virtual FTP users! Yes, generate users at runtime on a flat text file with htpasswd cli ñ a feature of HTTPD service. Even the system can delete that virtual account after session ends. On this scene, I use RHEL server with built-in FTP daemon called as VSFTPD - as claimed as a Very Secure FTP Daemon (yet another secure, fast & stable FTP server). Unfortunately, a great number of Linux distros has lack of one important VSFTPD module named as pam_pwdfile (described for Pluggable Authentication Module purposed for authenticating users within htpasswd), including to this RHEL OS.

So, I suggest you to download this library to the HTTP authentication server. I got it from RPMBone site (ftp://ftp.pbone.net/mirror/ftp.pld-linux.org/dists/1.0/updates/general/i586/pam_pwdfile-0.98-2.i586.rpm). Continue to install it:


After it successfully installed, now we need to configure /etc/vsftpd.conf just like below:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/users/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
log_ftp_protocol=YES
pam_service_name=vsftpd
userlist_enable=YES
listen=YES
check_shell=NO

Next, configuring PAM to check the passwd file for users. The file to configure is /etc/pam.d/vsftpd:

auth required pam_pwdfile.so pwdfile /etc/vsftpd/vsftpd.passwd
account required pam_permit.so

Simply remove everything else from the file except both above line. After editing, save it. Just to make sure your above configuration files is marked with green OK sign, restart the service twice.

#service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]
#service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]

Next, create the passwd file containing a dummy user. I named it as "testis" & I grouped this user to "ftp_users" group. So, we need to create that group before creating the users:

#groupadd ftp_users
#htpasswd -c /etc/vsftpd/vsftpd.passwd testis

To add later additional users to the file, the command is change to:

#htpasswd -b /etc/vsftpd/vsftpd.passwd virgin boobs

The user ID is "virgin" and the password is "boobs". Next, continue to create a physical local user that's used by the virtual users to authenticate:

#useradd -d /home/vsftpd -g ftp_users -m -s /bin/false vsftpd

Also, create user's home directory since VSFTPD doesn't do it automatically.

#mkdir /var/www/users/testis
#chown vsftpd:ftp_users testis

Finally, restart the VSFTPD service. Make it tested from client using FTP client.


That's it. Now we have a basic skeleton template of dynamically manageable FTP servers.


Still confuse? It looks 100% make sense if you just stay tune on this blog for upcoming part II article in the next couple weeks, I'll plan to share the rest of it. Thank's for reading & have a great day!

Labels: , , ,

  Post a Comment

Auto-Synchronize Over FTP Link (RedHat & Ubuntu)

In a spesific programming case, database synchronization method will needed to accomodate data transfer between 2 or more servers. There are so much techniques we can adopt to make it work. And that's all depends on needs, business requirement, infrastructure availability & of course skill of you're own self.

Anyway, I don't wanna talk about synchronization techniques but actually, this latest article was begun from my previous one - Simple MySQL Replication Using FTP - when I implement automatically SQL file synchronization - using FTP protocol & by the help of crond daemon - between 2 RedHat (RHEL) server. The goal is that both servers having the same databases & tables (server A sending data to server B, server B sending data to server A).

However, the problem arises when one of the server changed the OS from RHEL to debian based (Ubuntu). While the automatic script I made from RHEL won't work on Ubuntu - especially the lines referring to FTP commands - bash shell script.

So, how to make the synchronization running again? No doubt, rewrite the script ASAP! Take a look at below script:

echo machine your.domain.or.ip > /root/.netrc
echo login your_username >> /root/.netrc
echo password your_password >> /root/.netrc
chmod 600 /root/.netrc

ftp your.domain.or.ip <<_FTP_
binary
put name.of.the.file
bye
_FTP_


Above is the code that only work on RHEL. While the FTP account created on separated file named by .netrc, this is not compatible to Ubuntu.

ftp -n -i <<_FTP_
open your.domain.or.ip
user your_username your_password
binary
put name.of.the.file
quit
_FTP_


Somehow, the FTP account initialization right on above script is integrated in the same script. And it just succedded running in Ubunru server. Moreover, there's no script affected in other servers. So, lesson of learning today is: never change server OS except you're ready for the impact. Deal?

Labels: , , , , , , ,

  Post a Comment

Goddard on Acer Aspire One (Part 2)

Thousands of blog writers has been reviewing about how succeeded they were after installing Fedora 13 on their various machine. Anyway, I will not write the same things in this article, sorry. As a runner distro – after Ubuntu at first as listed on distrowatch.com-, Goddard seems to be a more human friendly or might become a future Linux desktop. Don't worry, this is my judgment – as far as I'm concerned after I've proofed my self on my Aspire One AOA 150. It's signed by the whole parts of hardware which had been detected correctly by the kernel without using any tweak or hack. Well, this is not happened even when I using Fedora 10 a years ago.

I still loved Fedora - than Ubuntu – because it's a derivative from the ancestor - Red Hat. However, now my favorite desktop manager has moved to Gnome from KDE. In my opinion, Gnome offering a simple desktop, fast, light & weight than latest KDE. Again, this is relative judgment. But one thing for sure, most users like their desktop because of it's appearance. For example, many users moved to Windows Se7en because of it's skin (but it doesn't works for me since I still using XP for some works & games).

Mac4Lin on Fedora 13
I beat that workers who live with computer (like me, red) is always keep the desktop as useful & unique personalized as it can be. Talking about personalizing desktop – especially on Gnome – lots of themes available to apply. After a day busy on completing package I need – including enabling 3D compiz, now comes a time to personalize my desktop. There's no beautiful desktop as much as Mac OS X did – it remained my using it on my 12” Travelmate. Fortunately, a group of peoples out there has done their job to provide a transformation pack named Mac4Lin project. The goal is to make Linux desktop as closer look as OS X did.

Try to reach the package over this link & following the how to steps. In short, perhaps your desktop maybe similar to mine now.



The package complete with Mac theme, desktop background & icons. And it's absolutely suitable for Gnome, except the GDM which isn't changeable yet (even I had tried to tweak it with Ailurus or GDM2Setup for Ubuntu). Anyway, you can set it to auto-login mode so that it wouldn't display GDM login window anymore. Look at snapshot below, the left side of the screen displaying Nautilus (which is similar to Mac file browser) while the right side is Firefox (with extra add-ons & themes, will make much close to Safari browser appearance).



On the bottom of the screen, laid the Avant Window Navigator – A dock similar to Mac desktop. All available in a single package of Mac4Lin transformation pack. All you need to do is follow the instruction, a little yum download & bit of compiling tar balls. After it succeed, I guarantee for your satisfaction. Just try & believe me.

To change Plymouth animation (known as Red Hat Graphical Boot), try to take a look at gnome-look.org or kde-look.org & find one suitable for you. As I've tried, to changed this you need to compiled manually. Please take carefully to do that, once you follow the instruction then your Goddard may be safe.

BURG on Fedora 13
Last but not least is how to modify default GRUB into BURG. Well, a complete hand book I've found on their project website. Like others said that BURG is stand for GRUB, it's a unique name mirrored from GRUB ~ an update model of GRUB bootloader which used high graphic for boot background. I said, this is a revolutionary & pretty cute boot loader than used on Mac or Windows Se7en.

Note that I don't recommended it if you're newbies on Linux since it's totally hand made (manual) but If you dare to do this, than prepare for install all of the dependencies. First, connect to the internet & give below command on terminal:

#sudo yum install autoconf automake bison flex make gcc ruby python gettext-devel freetype-devel


also provide required extra software for the emulated version requires:

#sudo yum install ncurses-devel SDL-devel


To download the source, you need to install bazaar binary package.

#sudo yum install bzr


After it completed, create a folder named burg on your home folder and enter to that folder. While you're on it & for the first time need to downloading the source, from terminal, enter:

#bzr branch lp:burg


Then, let it sync a previously downloaded source tree to the latest version (This still should be run in your burg source directory):

#bzr pull


After each update, you need to regenerate the configuration files by running this command in the same burg source directory:

#./autogen.sh


After that, download themes pack from this link since the original source doesn't include it yet. Those above commands purposed for preparing BURG source code in burg directory on your home folder. Based on the original manual, you should specify BURG compile & install directory. In my experiment, I supply both with different directory, burg_nb for the compilation & burg_install for the target installation. Just follow it & create 2 new directory, then copy all of files from burg directory into burg_nb (except the zipped themes file, we will use it later).

Now enter to burg_nb directory via terminal and get start to compile with commands below:

#$HOME/burg/configure --with-platform=pc --prefix=$HOME/burg_install
#make
#make install


After compilation completed, extract zipped themes pack to folder burg_install. Continuing to create a default configuration file named by burg & save it to $HOME/burg_install/etc/default. Here below is my default burg configuration file:

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_SAVEDEFAULT=true
GRUB_GFXMODE=saved
GRUB_THEME=saved
GRUB_FOLD=saved


Just in case you need a backup, copy burg files to folder /etc/default. Now, tell BURG that you have others OS (eg: Windows) on your machine. To define this, open 40_custom file from $HOME/burg_install/etc/burg.d folder & specify where partition your Windows reside. See my 40_custom modified file below:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
#

menuentry "Acer Recovery" --class windows --class os {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set 3ab0e580b0e542cd
chainloader +1
}

menuentry "Se7en" --class windows --class os {
insmod ntfs
set root='(hd0,2)'
search --no-floppy --fs-uuid --set 3ab0e580b0e542cd
chainloader +1
}


As you can see on my example above (first partition contains Acer recovery partition & followed by Windows partition), please make an appropriate to your partition machine. Now, as root, install it to MBR so that it will take effect on the next boot:

#sudo $HOME/burg_install/sbin/burg-install /dev/sda
#sudo $HOME/burg_install/sbin/burg-mkconfig -o /boot/burg/burg.cfg


Then last, copy the extracted themes pack into /boot/burg. To check & re-check, make sure that you have already directory structure like mine below (or repeat from first step if it not the same):



Please note that users directory on picture above is your home directory. If there's no error reported after both commands above resulted, you may safely reboot your machine & get ready to see a changes.



See that, now GRUB has disappear replaced by BURG bootloader interface. To change themes, press “T” keyboard or “F3” to change the screen resolution or you can do some tweaks from configuration files modification (icons or backdround image) by reading the manual. Now, I have my favorite OS on my netbook, but I don't know how long it can stand. As the final words from this current article, I order to Fedora developer to enable GDM setup anymore (like previous GDM version) & add BURG as default bootloader on future release of Fedora. Please, share your own experience on Goddard on below comments box before leaving this blog. Thanks for passing by.

Labels: , , , , , ,

  Post a Comment

Goddard on Acer Aspire One (Part 1)

It's been a long while I had Open Solaris 2008.11 on my Acer Aspire One ~ it's particularly 2nd generation model AOA150 got from Google with 8.9” screen & 120 GB hard drive. I think it's enough to play through with Open Solaris & need to try to get back to Fedora which I passed it for last 5 major version.

Now, I have Goddard – a codename of Fedora 13 – iso & a brand new Western Digital Passport (an external hard drive with 320 GB capacity) I bought from bhinneka.com. Since I don’t have an external optical drive, I always used USB mass storage to installing OS on my netbook. This time, I'd like to try my external 320 GB hard drive as the iso master installation rather than my 8 GB USB.

At first, I had unboxing the hard drive & let it parted with a free partition kit named by EASEUS Partition Master 6.1.1 Home Edition. After that, I'll have 4 partitions on it. See it on partition table illustration below:



On that table, I'm planning to store out my data into partition #2, #3 & #4 – so we can ignore it from now. Let focus on first red partition table (10 GB) which I prepared for Fedora 13 iso with FAT32 partition type. Like usual, I also use Fedora LiveUSB Creator to make USB flash disk boot-able. I thought that it would be succeed either on USB external hard drive but it wasn't!



On picture above, none of drive letters shows up on Target Device combo. Why was that happened? Explained on a FAQ WIKI pages, that Windows sometime detects certain drives as NOT being removable devices – perhaps a different device class between USB Mass Storage & USB Removable Drive. But with a clue on that, that kit can force the 1st mode. Don't run it from double click icon, just open up a DOS command prompt on active directory where that software placed & type:

liveusb-creator.exe --force X:


where X refer to your drive letter on your external hard drive. Look at the picture below, i used G: as the target partition. Hit enter on the prompt window & vice versa... the Fedora LiveUSB Creator now shows the G: drive letter.



As soon as this way succeed, i then continue to the rest of process which was #1) burning iso to the external drive (X:)



#2) copying also the iso to X: #3) and last, stand by for the first reboot to boot to the external drive from BIOS. Once it booted smoothly, you ain't have no trouble for more. Just follow the on screen wizard to complete your Fedora 13 a.k.a Goddard installation or you can found the manual documentation elsewhere over the internet. I'll be back for the next part of Goddard; the complete Mac OS X Gnome themes until change GRUB into BURG boot loader. Stay tune on this channel...

Labels: , , , , , ,

  Post a Comment

VirtualBox in Aspire One: Fedora 7 Guest on Windows XP Home Host

On this series article of Aspire One (A110) – at least at current month continuously, I’d like to share you about my experience installing Fedora 7 guest on Windows XP Home host with VirtualBox. This might be a different one since I hadn’t tried before, moreover on netbook class. By the chance, I need to test about the virtualization performance on Atom processor running Linux system simultaneously. If you’d like to take a try your self, you must prepare VirtualBox software (I used 1.4.0 or download latest here), Fedora 7 ISO DVD (or others Linux image) and Nero ImageDrive (or your any virtual CD favorite application).

First, load the ISO image with virtual CD drive tools (I used Nero to load the ISO image).



Run VirtualBox & prepare the virtual hardware environments. In my test, I setting up with 384MB of RAM & 3GB fixed size of virtual hard disk.



Boot the machine & it will shows default welcome splash. Select the first menu; Install or upgrade an existing system.



Follow the on-screen wizard until you meet with hard drive partitioning window. Select Create custom layout & continue to Next button.



Divide the 3GB virtual hard disk with each configuration; root system (ext3) with 2753MB & swap file with 314MB or depends on your custom size.



As it default, leave the GRUB boot loader to be installed on this virtual hard disk. Click Next to continue.



Obviously, the network interface has been detected as Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]. Give the interface with manual configuration IP address & similar with the host network class (I used 192.168.1.1 to host & 192.168.1.12 to guest).



Select your appropriate software with Customize now radio button or simply leave with it’s default selection value.



Installing files then established…



During this, the load of CPU usage was high. Every single task on host OS may decrease the speed of installing process.



Approximately, it took about 1:20 hours until the installation completed with office packages installed. Next, click Reboot button. Note that, the ISO image will ejected automatically during this screen.



System will now restarted, the live GRUB boot also appears.



Loading progress established with (very) low speed.



The great was, 2nd device – which was sound card – had recognized as 82801AA AC97 Audio Controller & currently using snd-intel8x0 module. A sound test clearly hear out from the speaker.



I tried to test the network connection (host with 192.168.1.1 and guest IP 192.168.1.12) & both of it was successfully responding. I pinging out guest from host, while I made an attempt to load the host share drives from guest OS.



Conclusion
Somehow, running Fedora 7 with VirtualBox on this netbook feels the same with running exactly Fedora 7 on Pentium III physically machine with 256MB of RAM. Everything has working but with slow-moving around. However, with all weaknesses, still I need this virtualization to test my web based application project on different OS (for example: Linux act as client) & browser capability environments.

Labels: , , ,

  Post a Comment

Installing Fedora 7 from USB Flash Disk on Aspire One

Actually, this current article has many header titles. As I succeeded uncover several hidden things behind my Aspire One during the installation of Fedora 7. But the great was, it’ll describe how to make Fedora 7 USB boot setup and also revealing what is under the 1st partition of the Aspire One hard drive - the recovery partition indeed. Why I choose Fedora 7 because I already loved it so much, a better performance, quite complete applications including 3rd party additional tools and of course a stable operating system kernel.

What you need to do this is a Fedora 7 boot disk image, an idle USB flash disk at least with 32MB capacity, Fedora 7 ISO DVD image and also a Linux computer system for preparing of USB boot. Anyway, disk partitioning tools such as Partition Magic might be required to restructuring the Aspire One hard drive partition under Windows.

Install disk partitioning tool if you don’t have any dedicated partition for Linux. At minimal, it need 2 system partitions; the root system & swap space. The size is up to you, but in my experiences, 7GB root partition & 500MB swap space was more than enough (see green box on picture below). Anyway, a red box on image referring the Acer recovery partition. This partition is unique. Somehow, we can’t see it from Windows Explorer even that it has been on FAT16 file system. You even can’t reach it from GHOST tool which I though it can. So, it makes me so suppressed & would like to see it physically from Linux.



Back to topic again, after you prepared the partition, put Fedora 7 ISO image on any kind partition with FAT32 file system, so that it readable from Fedora 7 setup. In my experiences, I put it on 2nd partition (drive D under VBOX directory ~ D:\VBOX). Next, it’s time to create the bootable USB disk. Download disk image from this link & extract it on your existing Linux system. Type the command below on current path in terminal where you extract the image.

$ dd if=diskboot.img of=/dev/sdax

The device /dev/sdax refer to your USB flash disk, so make an appropriate for your situation. If nothing goes wrong, now you’re ready to boot the flash drive. Change boot selections from F12 shortcut after you restart the computer. Press Enter to continue.



Then, a welcome screen will appear. Select first menu to begin the installation process. Continue the setup wizard until it asking the installation method screen.



On this chance, simply select Hard drive option then click OK to continue.



Next, the wizard will asking what partition and directory on selected partition hold the image for Fedora 7. On my example, select /dev/sda5 and type VBOX (without the ISO file name) which refer to directory holding image. Click OK again to continue.



The installation will begin. Follow the rest wizard just like the same as you install in normal condition until it completely finished. Now, you have Fedora 7 inside your Aspire One (dual boot with default Windows XP Home). By the way, did you remember when I told you about Acer recovery partition above? Check it out from file explorer (e.g.: Konqueror) after you manually mounting it, you can see the files physically & backup it to safe place.



To gain more additional 5GB space, you can delete it or merge this 1st partition from Windows Explorer to another existing partition using Partition Magic. Be careful, the change of partitions table might caused your Fedora 7 could not boot properly anymore.

Labels: , , ,

  Post a Comment