Posts Tagged ‘ISO’
Monday, April 20th, 2026
Creating a Windows 10 installation USB from a Linux system is entirely possible and surprisingly straightforward once you know the few steps process and using few Linux tools. Whether you're preparing a dual-boot setup, fixing a broken Windows machine OS onplace, or re-installed Windows, installing fresh from scratch, is an useful skill every self-respecting sysadmin should be aware of.
Why Create Windows Installation Media from Linux ?
Even a hardcore Linux sysadmin / Desktop users need Windows for specific software, gaming, or troubleshooting, or for deployment of Windows installs for non-IT professionals, friends or company environments.
Having a Windows installable ISO by downloading and using Windows Media Creation Tool is an easy trivial task for those with Windows but is a problem especially for GNU / Linux users like me who don't own a computer with Microsoft Windows, but have Debian / Ubuntu / Fedora in place.
Microsoft’s official media creation tool is made to only runs on Windows OS, fortunately there is a few ways to have an installable USB drive prepared even on Linux.
The main challenge lies in properly formatting the USB flash drive and handling large Windows image files, especially the install.wim, which can exceed FAT32 file size limits.
What You’ll Need
Before starting, make sure you have:
- A USB drive (at least 8GB sized recommended)
- A Linux system (Ubuntu, Fedora, Arch Linux etc.)
- The latest Windows 10 ISO file (downloaded locally)
1. Download the Windows 10 ISO
Go to Microsoft’s official website and download the latest Windows 10 ISO. You can do this directly from Linux using your browser.
- Go to the Official Windows 10 Download Page.
- On Windows: Press F12 (Dev Tools), click the Device Toolbar icon (mobile/tablet icon), and refresh the page. This tricks Microsoft into thinking you are on a Mac or Linux machine.
- Select the edition and language, then click Confirm.
- Right-click the 64-bit Download button and select Copy link address.
- In your terminal, use wget. Note: You must wrap the URL in double quotes because it contains special characters:
Use wget with a direct copy of download link like for example:
$ wget https://www.microsoft.com/software-download/windows10.iso -O windows10.iso
Make sure the ISO is fully and correctly downloaded before proceeding further.
2. Install Required Tools
On Debian / Ubuntu deb-based distros. You’ll need few utilities:
# apt update # apt install wimtools ntfs-3g p7zip-full
On Fedora:
# dnf install wimlib ntfs-3g p7zip
These tools help extract and handle Windows image files properly.
3. Prepare the USB Drive
Insert your USB drive and identify it:
# lsblk
Look for something like /dev/sdb (be careful, as this will erase all data on the drive).
Partition and Format
Use fdiskor parted:
# fdisk /dev/sdb
- Create a new partition table (GPT or MBR)
- Create one primary partition
- Set type to NTFS or FAT32
Then format it:
# mkfs.ntfs -f /dev/sdb1
NTFS is recommended because it supports large files.
4. Mount ISO and USB
Create mount points:
mkdir ~/winiso mkdir ~/winusb
Mount the ISO:
# mount -o loop windows10.iso ~/winiso
Mount the USB:
# mount /dev/sdb1 ~/winusb
5. Copy Files of ISO to Flash drive
Copy all files from the ISO to the USB:
# rsync -avh –progress ~/winiso/ ~/winusb/
This may take several minutes.
6. Handle Large install.wim File (If Needed)
If you formatted your USB as FAT32 and encounter issues with large files:
Split the WIM file:
# wimlib-imagex split ~/winiso/sources/install.wim ~/winusb/sources/install.swm 4000
Then remove the original:
rm ~/winusb/sources/install.wim
This step ensures compatibility with FAT32 file size limits.
7. Safely Unmount
Once everything is copied, make sure to:
# umount ~/winiso # umount ~/winusb
Now your USB is ready.
! NB ! Ensure Boot Files Exist
Double-check this path exists (on the new created Flash stick):
/EFI/BOOT/bootx64.efi
If this file is missing, the USB will fail to boot Windows 11 OS Installer.
8. Boot from fresh created USB drive
Insert the USB flash drive into the target machine, reboot, and enter BIOS / UEFI (usually by pressing F2, F12, DEL, or ESC).
Select the USB drive as the boot device / Save settings, reboot and the Windows OS installer screen should appear.
9. Troubleshooting Tips and Common Pitfalls (Especially with Windows 11)
- USB not booting ? – Ensure your system is set to boot in UEFI mode if your USB is GPT formatted.
- Missing drivers ? – Try recreating the USB using NTFS instead of FAT32.
- Secure Boot issues ? – You may need to disable Secure Boot in BIOS.
9.1. USB Not Booting
9.2. “File Too Large” Error
- Very likely you forgot to split install.wim (as prior described)
9.3. Installer Refuses to Continue
- Windows 11 require:
a.TPM 2.0
b. Secure Boot
10. Alternative GUI Linux Tools to use WoeUSB-ng / Ventroy
If you prefer Linux GUI tools for preparation of Installation USB drive Media , consider downloading WoeUSB or Ventroy:
- WoeUSB – specifically designed for creating Windows bootable USBs from Linux
- Ventoy – allows you to copy multiple ISOs to a single USB and boot from a menu
10.1 Install WoeUSB-ng
Easiest and perhaps most straight forward way is to install it via git and pip python.
$ git clone https://github.com/WoeUSB/WoeUSB-ng.git
$ cd WoeUSB-ng
$ sudo pip3 install .
10.2. Install Ventroy and deploy Windows installer on USB Drive
a) Prepare the USB Drive in Linux
b) Add the Windows ISO
c) Install Windows ISO
1. Download it : Get the ventoy-x.x.xx-linux.tar.gz file from the Ventoy website.
2. Extract : Open a terminal and extract: tar -xvf ventoy-*.tar.gz.
3. Locate USB: Run lsblk to identify your USB drive (e.g., /dev/sdb).
4. Install: Run the script (replace /dev/sdb with your drive):
# sudo ./Ventoy2Disk.sh -i /dev/sdb
Once installed, the USB will have a large partition named "Ventoy".
5. Copy, paste Windows ISO file: (Windows 10 or 11) onto this USB drive.
6. Insert the USB, into the target computer.
7. Reboot PC: and enter the BIOS/boot menu (e.g., F2, F12) to boot from the USB.
Sum it up
Creating Windows 10 installation media from Linux might seem tricky at first, but with the right approach, it’s completely manageable, it is also a nice one if you need to create multiple flash drives, and you need to automate the process of Windows installable USB drive creation for multiple windows setups that needs to get reinstalled on place simultaneously.
Once you’ve done it once, it becomes a quick and reliable process you can reuse anytime.
Whether you're a Linux enthusiast or just working across systems, this method ensures you're never stuck without a Windows installer at hand, even without owing a Windows OS.
Tags: Creating Windows, download page, ESC, Insert, ISO, Missing, mount dev, refresh, Select, USB
Posted in Educational, Everyday Life, Linux, Windows | No Comments »
Thursday, February 8th, 2024 Creating Windows bootable installer with Windows Media Creation tool is easy, but sometimes if you're a geek like me you don't have a Windows personal PC at home and your Work PC is so paranoidly restricted by its administrator through paranoid Domain Controller Policies, that you can only copy from a USB drive towards the Win PC but you cannot write to the USB.
1. Preparing Linux installer USB via Mac's Boot Camp Assistant
If you're lucky you might have a MAC Book Air or some kind of other mac PC, if that is the case you can burn the Windows Installer iso, with the Native Mac tool called BootCamp Assistant, by simply downloading the Win Boot ISO, launching the app and burning it:
Finder > Applications > Utilities and open Boot Camp Assistant.
2. Preparing Bootable Windows installer on Linux host machine
On DEBIAN / UBUNTU and other Deb based Linuxes
# apt install gddrescue
On CENTOS / FEDORA :
# dnf install ddrescue
To install the Windows Image to the right USB drive, first find it out with fdisk and list it:
# fdisk -l
Disk /dev/sdb: 14.41 GiB, 15472047104 bytes, 30218842 sectors
Disk model: DataTraveler 3.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc23dc587
Device Boot Start End Sectors Size Id Type
/dev/sdb1 8192 30216793 30208602 14.4G 7 HPFS/NTFS/exFAT
/dev/sdb2 30216794 30218841 2048 1M e W95 FAT16 (LBA)
Then Use ddrescue to create the bootable MS windows Installer USB disk.
# ddrescue windows10.iso /dev/sd1 –force -D
3. Using GUI Linux tool WoeUSB-ng to prepare Microsoft Windows start up USB drive
If you're a lazy Linux user and you plan to prepare up to date Windows image files regularly, perhaps the WoeUSB-ng Graphical tool will suit you better, to use it you will have to install a bunch of python libraries.
On Ubuntu Linux:
# apt install git p7zip-full python3-pip python3-wxgtk4.0 grub2-common grub-pc-bin
# pip3 install WoeUSB-ng
On Fedora Linux:
# dnf install git p7zip p7zip-plugins python3-pip python3-wxpython4
# sudo pip3 install WoeUSB-ng
Launch the WoeUSB-ng program :
$ python3 /usr/local/bin/woeusbgui
Download, the latest Version of Windows Installer .ISO IMAGE file, plug in your USB flash disk and let the program burn the ISO and create the GRUB boot loader, that will make WIndows installer bootable on your PC.
With WoeUSB-ng you have to be patient, it will take some time to prepare and copy the Windows installer content and will take about 15 to 20 minutes from my experience to finalize the GRUB records required, that will make the new burnt ISO bootable.
Then just plug it in to your Desktop PC or laptop, virtual machine, whatever where you would like to install the Windows from its latest installation Source image and Go on with doing the necessery evil to have Microsoft Spy on you permanently.
P.S. I just learned, from colleagues from Kvant Serviz (a famous hardware second hand, shop and repair shop here in Bulgaria, that nowadays Windows has evolved to the points, they can and they actually do overwrite the PC BIOS / UEFI as part of updates without any asking the end user !!!
At first I disbelived that, but after a short investigation online it turned out this is true, there are discussions online from people complaining, that WIndows updates has ovewritten their current BIOS settings and people complaining BIOS versions are ovewritten.
Enjoy your new personal Spy OS ! 🙂
Tags: bin, Boot Camp Assistant, create, Device Boot Start End Sectors Size Id Type, dnf, Enjoy, fdisk, Finder Applications Utilities, grub, ISO, launch, optimal, Pc, plug, sector size, USB, virtual machine, will take some time
Posted in Curious Facts, Educational, Mac OS X, System Administration, Windows | No Comments »
Tuesday, January 17th, 2012 
My beloved sister was complaining games were failing to properly be played with wine emulator , therefore I decided to be kind and help her by installing a Windows XP to run inside a Virtual Machine.My previous install experiments with running MS Windows XP on Linux was on Debian using QEMU virtualmachine emulator.
However as Qemu is a bit less interactive and slower virtualmachine for running Windows (though I prefer it for being completely free software), this time I decided to install the Windows OS with Virtualbox.
My hope was using VirtualBox would be a way easier but I was wrong… I've faced few troubles and I thought many people who initially try to install Virtualbox VM to run Windows on Ubuntu and other Debian based Linux distros will probably experience the same problems as mine, so here is how this article was born.
Here is what I did to have a VirtualBox OS emulator to run Windows XP SP2 on Ubuntu 11.10 Linux
1. Install Virtualbox required packages with apt
root@ubuntu:~# apt-get install virtualbox virtualbox-dkms virtualbox-guest-dkms
root@ubuntu:~# apt-get install virtualbox-ose-dkms virtualbox-guest-utils virtualbox-guest-x11
...
If you prefer more GUI or lazy to type commands, the Software Package Manager can also be used to straight install the same packages.
virtualbox-dkms virtualbox-guest-dkms packages are the two which are absolutely necessery in order to enable VirtualBox to support installing Microsoft Windows XP. DKMS modules are also necessery to be able to emulate some other proprietary (non-free) operating systems.
The DKMS packages provide a source for building Vbox guest (OS) additional kernel modules. They also require the kernel source to be install otherwise they fail to compile.
Failing to build the DKMS modules will give you error every time you try to create new VirtualMachine container for installing a fresh Windows XP.
The error happens if the two packages do not properly build the vboxdrv extra Vbox kernel module while the Windows XP installer is loaded from a CD or ISO. The error to pop up is:
Kernel driver not installed (rc=-1908)
The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing
To fix the error:
2. Install latest Kernel source that corresponds to your current kernel version
root@ubuntu:~# apt-get install linux-headers-`uname -r`
...
Next its necessery to rebuild the DKMS modules using dpkg-reconfigure:
3. Rebuild VirtualBox DKMS deb packages
root@ubuntu:~# dpkg-reconfigure virtualbox-dkms
...
root@ubuntu:~# dpkg-reconfigure virtualbox-guest-dkms
...
root@ubuntu:~# dpkg-reconfigure virtualbox-ose-dkms
...
Hopefully the copilation of vboxdrv kernel module should complete succesfully.
To test if all is fine just load the module:
4. Load vboxdrv virtualbox kernel module
root@ubuntu:~# modprobe vboxdrv
root@ubuntu:~#
If you get some error during loading, this means vboxdrv failed to properly compile, try read thoroughfully what the error is and fix it) ;).
As a next step the vboxdrv has to be set to load on every system boot.
5. Set vboxdrv to load on every Ubuntu boot
root@ubuntu:~# echo 'vboxdrv' >> /etc/modules
I am not sure if this step is required, it could be /etc/init.d/virtualbox init script automatically loads the module, anyways putting it to load on boot would do no harm, so better do it.
That's all now, you can launch VirtualBox and use the New button to initiate a new Virtual Machine, I will skip explaining how to do the configurations for a Windows XP as most of the configurations offered by default would simply work without any tampering.
After booting the Windows XP installer I simply followed the usual steps to install Windows and all went smoothly.
Below you see a screenshot showing the installed Windows XP Virtualbox saved VM session. The screenshot letters are in Bulgarian as my sisters default lanaguage for Ubuntu is bulgarian 😉
I hope this article helps someone out there. Please drop me a comment if you experience any troubles with it. Cya 🙂
Tags: Auto, beloved sister, DKMS, Draft, Failing, free operating systems, guest os, How to, init, init script, Install, ISO, kernel modules, kernel source, Linux, loading, Microsoft, microsoft windows, ms windows, necessery, Permission, qemu, root, screenshot, Set, software, software package, system boot, time, type, Ubuntu, uname, vbox, Virtual, virtual machine, VirtualBox, virtualmachine, vm, Windows, windows os, windows xp, windows xp sp2, wine, x11
Posted in Linux, Linux and FreeBSD Desktop, Linux Audio & Video | 1 Comment »
Monday, January 23rd, 2012 
1. Add Medibuntu package repository
root@ubuntu:~# wget --output-document=/etc/apt/sources.list.d/medibuntu.list \
http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list \
&& apt-get --quiet update \
&& apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring \
&& apt-get --quiet update
2. Enable Ubuntu to play Restricted DVD
root@ubuntu:~# apt-get install --yes libdvdread4
...
root@ubuntu:~# /usr/share/doc/libdvdread4/install-css.sh
After that VLC will be ready to play DVDs for some programs which was compiled without DVD, source rebuilt is required.
If DVDs hang you might need to set a Region Code with regionset:
# regionset
3. Install non-free codecs
root@ubuntu:~# apt-get install non-free-codecs
4. Install Chromium ffmpeg nonfree codecs
root@ubuntu:~# apt-get install chromium
root@ubuntu:~# apt-get install chromium-codecs-ffmpeg-nonfree
5. Install w32codecs / w64codecs
Depending on the Ubuntu Linux installation architecture 32/64 bit install w32codecs or w64codecs
For 32 bit (x86) Ubuntu install w32codecs:
root@ubuntu:~# apt-get install w32codecs
For 64 bit arch Ubuntu:
root@ubuntu:~# apt-get install w64codecs
6. Install ubuntu-restricted-extras meta package
root@ubuntu:~# apt-get install ubuntu-restricted-extras
7. Install cheese for webcam picture/video snapshotting
root@ubuntu:~# apt-get install cheese
8. Install GIMP, Inkscape, xsane,sane, shotwell etc.
root@ubuntu:~# apt-get --yes install sane xsane gimp inkscape gimp-data-extras gimp-plugin-registry \
blender gcolor2 showtwell bluefish kompozer
9. Install multimedia Sound & Video utilities
Install Subtitle editor, video editiking , sound editing, mp3 player, iso mounters, DVD/CD Burners
root@ubuntu:~# apt-get install rhythmbox banshee smplayer mplayer \
realplayer audacity brasero jokosher istanbuk gtk-recordMyDesktop \acetoneisohexedit furiusisomount winff fala audacious dvdstyler lives hydrogen
subtitleeditor gnome-subtitles electricsheep k3b
10. Install CD / DVD RIP tools
root@ubuntu:~# apt-get install acidrip sound-juicer ogmrip thoggen
11. Install chat messanger programs, Browsers, mail pop3 clients, torrent, emulators, ftp clients etc.
apt-get install seamonkey thunderbird transmission transmission-gtk gbgoffice kbedic \
pidgin openoffice.org gxine mozilla-plugin-vlc wine dosbox samba filezilla amsn ntp \epiphany-browser ntpdate desktop-webmail alltray chmsee gftp xchat-gnome ghex \gnome-genius bleachbit arista
12. Install Non-Free Flash Player
Unfortunately Gnash is not yet production ready and crashes in many websites …
root@ubuntu:~# apt-get install flashplugin-nonfree flashplugin-nonfree-extrasound swfdec-gnome
13. Install Archive / Unarchive management programs
root@ubuntu:~# apt-get install unace unrar zip unzip p7zip-full p7zip-rar sharutils rar uudeview \
mpack lha arj cabextract file-roller
15. Install VirtualBox and QEmu
root@ubuntu:~# apt-get install qemu-launcher qemu-kvm-extras virtualbox virtualbox-ose \
virtualbox-ose-guest-dkms virtualbox-ose-guest-dkms
This should be enough to use Ubuntu normally for multimedia Desktop just as MS Windows for most of the daily activities.
Am I missing some important program?
Tags: amp, architecture, audacity, Auto, banshee, bit, blender, bluefish, cd burners, Chromium, Draft, editing, editing mp3, ffmpeg, free codecs, gcolor, inkscape, Install, installation, ISO, libdvdread, Linux, linux multimedia, list, lsb, Medibuntu, meta package, org, output document, package, player, plugin registry, regionset, repository, root, sane, shafter, shotwell, showtwell, smplayer, Sound, sound editing, Sound Video, subtitle editor, sudo, Ubuntu, ubuntu linux, Ubuntu Linux Multimedia, video, video utilities, VirtualBox, VLC, wget, WinFF, x86
Posted in Linux, Linux and FreeBSD Desktop, Linux Audio & Video, System Administration | 4 Comments »
Monday, February 20th, 2012
Already on a couple of mail boxes located on one of the qmail powered mail servers I adminiter, there is an over QUOTA reached problem encountered.
Filling up the mailbox quota is not nice as mails starts get bounced back to the sender with a message QUOTA FULL or EXCEEDED MESSAGE, if this is a crucial mail waiting for some important data etc. the data is never received.
Below is a copy of the mail quota waarning notification message:
Delivered-To: email_use@my-mail-domain.net
Date: Wed, 15 Feb 2012 17:40:36 +0000
X-Comment: Rename/Copy this file to ~vpopmail/domains/.quotawarn.msg, and make appropriate changes
X-Comment: See README.quotas for more information
From: Mail Delivery System <Mailer-Daemon@different.bg>
Reply-To: email@www.pc-freak.net
To: Valued Customer:;
Subject: Mail quota warning
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 7bit
>
Your mailbox on the server is now more than 90% full. So that you can continue
to receive mail you need to remove some messages from your mailbox.
As you can read from the copy of the mail message above, the message content sent to the mail owner whose quota is getting full is red from /var/vpopmail/domains/.quotawarn.msg
The mail reaching quota problem is very likely to appear in cases like low mailbox quota set, but sometimes also occurs due to bugs in vpopmail quota handling.
Various interesting configuration settings for mail quotas etc. are in /home/vpopmail/etc/vlimits.default file, (assuming vpopmail is installed in /home).
In my specific case, the default vpopmail mailbox quota size was set to only 40 Megabytes.
40MB is too low if compared to todays mailbox size standards which in Gmail and Yahoo mail services are already a couple of gigabytes.
Hence to get around the quota troubles, I removed the quota for the mail.
To remove the quota size in vpopmail set for address (email_user@my-mail-domain.net) used cmd:
qmail-server:~# vmoduser -q NOQUOTA email_user@my-mail-domain.net
To save myself from future quota issues, I decided to apply a permanent fix to all those over quota size VPOPMAIL mailbox problems by removing completely quota restriction for all mailboxes in my vpopmail existent mail domain.
To do so, I wrote a quick simple bash loop one-liner script:
qmail-server:~# cd /home/vpopmail/domains
qmail-server:~/vpopmail/domains# cd my-mail-domain.net
qmail-server:~/vpopmail/domains/my-mail-domain.net# for i in *; do \
vmoduser -q NOQUOTA $(echo $i|grep -v vpasswd)@my-mail-domain.net; \
done
This works only on vpopmail installations which are configured to store the mail messages directly on the filesystem. Therefore this approach will not work for people who during vpopmail install had configured it to store mailboxes in MySQL or in other kind of SQL db engine.
Anyways for Vpopmail installed to use SQL backend, the script can be changed to read directly a list with all the mailboxes obtained from databasae (SQL query) and then, loop over each of the mail addresses apply the vmoduser -q NOQUOTA mail@samplemaildomain.net.
I've written also a few lines shell script (remove_vpopmail_emails_domain_quota.sh), it accepts one argument which is a vpopmail domain to which the admin would like to reset all applied mailbox quotas. The script is useful, if you have to often remove all quotas for vpopmail domainsor have to do quota wipe out simultaneously for multiple email domain names located on different servers.
Tags: Auto, bit, charset, configuration settings, content transfer, copy, Date, Draft, EXCEEDED, file, free mail services, FULL, gigabytes, Gmail, information, ISO, mail boxes, mail delivery system, mail domain, mail message, mail owner, mail quota, mail quotas, mail server, mail servers, mail services, mailbox quota, mailbox size, megabytes, message, message quota, Mime, msg, msgThe, nbs, NOQUOTA, notification message, Qmail, quot, quota problem, README, Rename, script, sender, size, SQL, text, transfer, version, vpopmail
Posted in Qmail, System Administration | No Comments »
Saturday, January 14th, 2012 Mounting ISO files in Linux is easy with mount cmd, however remembering the exact command one has to issue is a hard task because mounting ISO files is not a common task.
Mounting ISO files directly by clicking on the ISO file is very nice, especially for lazy people uninitiated with the command line 😉
Besides that I'm sure many Windows users are curious if there is an equivallent program to DaemonTools for Linux / BSD*?
The answer to this question is YES!
There are two major programs which can be used as a DaemonTools substitute on Linux:
These are FuriousISOMount and AcetoneISO
AcetoneISO is more known and I've used it some long time ago and if I'm correct it used to be one of the first ISO Mount GUI programs for Linux. There is a project called GMount-ISO / (GMountISO) which of the time of writting this article seems to be dead (at least I couldn't find the source code).
Luckily FuriousISOMount and AcetoneISO are pretty easy to install and either one of the two is nowdays existing in most Linux distributions.
Probably the programs can also be easily run on BSD platform also quite easily using bsd linux emulation.
If someone has tried something to mount GUIs in Free/Net/OpenBSD, I'll be interesting to hear how?
1. Mount ISO files GUI in GNOME with Furius ISO Mount
FuriousISOMount is a simple Gtk+ interface to mount -t iso9660 -o loop command.
To start using the program on Debian / Ubuntu install with apt;
debian:~# apt-get install furiusisomount
The following extra packages will be installed:
fuseiso fuseiso9660 libumlib0
The following NEW packages will be installed:
furiusisomount fuseiso fuseiso9660 libumlib0
…
To access the program in GNOME after install use;
Applications -> Accessories -> Furious ISO Mount

When mounting it is important to choose Loop option to mount the iso instead of Fuse
After the program is installed to associate the (.iso) ISO files, to permanently be opened with furiusisomount roll over the .iso file and choose Open With -> Other Application -> (Use a custom command) -> furiusisomount

2. Mount ISO Files in KDE Graphical Environment with AcetoneISO
AcetoneISO is build on top of KDE's QT library and isway more feature rich than furiousisomount.
Installing AcetoneISO Ubuntu and Debian is done with:
debian:~# apt-get install acetoneiso
The following NEW packages will be installed:
acetoneiso gnupg-agent gnupg2 libksba8 pinentry-gtk2 pinentry-qt4
0 upgraded, 6 newly installed, 0 to remove and 35 not upgraded.
Need to get 3,963 kB of archives.
After this operation, 8,974 kB of additional disk space will be used.
...

AcetoneISO supports:
- conversion between different ISO formats
- burn images to disc
- split ISO image volumes
- encrypt images
- extract password protected files
Complete list of the rich functionality AcetoneISO offers is to be found on http://www.acetoneteam.org/viewpage.php?page_id=6
To start the program via the GNOME menus use;
Applications -> Accessories -> Sound & Video -> AcetoneISO
I personally don't like AcetoneISO as I'm not a KDE user and I see the functionality this program offers as to rich and mostly unnecessery for the simple purpose of mounting an ISO.
3. Mount ISO image files using the mount command
If you're a console guy and still prefer mounting ISO with the mount command instead of using fancy gui stuff use:
# mount -t iso9660 -o loop /home/binary/someiso.iso /home/username/Iso_Directory_Name
Tags: AcetoneISO, Auto, BSD, cmd, custom, debian gnu, Draft, emulation, exact command, file, Files, Free, GMount-ISO, Gnome, graphical environment, gtk interface, guis, image files, ISO, iso file, iso files, iso9660, libumlib, long time, loop command, most linux distributions, nbsp, Open, OpenBSD, option, platform, roll, someone, something, source code, substitute, time, Ubuntu, windows users, YES
Posted in Gnome, Linux, Linux and FreeBSD Desktop, Linux Audio & Video | No Comments »
Thursday, December 1st, 2011 
I have never did a proper install of Windows XP on Debian before hand. Even though I experimented once long time ago. I had zero success with installing Windows XP Service Pack 2 . The only Windows I can make correctly working before hand on these early days on my Debian powered notebook with qemu virtual machine emulator was Windows 2000 .
I decided to give it another go today as I hoped the qemu has advanced and I’ve seen many reports online of people who were able to correctly make Windows XP SP2 work out.
As I’ve seen many blog posts online of people who succesfully run with qemu Windows XP SP2, in order to escape from repeating the other guys experience and conduct a fresh experiment, I decided to give qemu a try with Microsoft.Windows.XP.Professional.SP3.Integrated.June.2011.Corporate
Before I proceed with using latest qemu I,
1. Installed qemu using the usual:
debian:~# apt-get install --yes qemu qemu-keymaps qemu-system qemu-user qemu-utils uml-utilities
...
Afterwards,
2. Created a new directory where the qemu Windows image will be stored:
debian:~# su hipo
hipo@noah:~$ mkdir windows
hipo@noah:~$ cd windows
hipo@noah:/home/hipo/windows$
As a following step I loaded the tun kernel module which is necessery for Qemu to properly handle the Windows LAN networking.
3. Load and set proper permissions for tun kernel module
In case if /dev/net is not existing first step is to create the proper device, however in most cases /dev/net should be there:
debian:~# mkdir -p /dev/net
debian:~# mknod /dev/net/tun c 10 200
As a next step its necessery to load tun kernel module and set the proper permissions:
debian:~# modprobe tun
debian:~# echo 'tun' >> /etc/modules
debian:~# chgrp users /dev/net/tun
debian:~# chmod g+w /dev/net/tun
Next step is to create an image file with dd or with qemu-img which will be holding the Virtual Machine Windows installation.
4. Create image file for Windows using dd
I decided to create a the image file to be with a size of 5 Gigabytes, this is of course custom so other people might prefer having it less or more the absolute minimum for a proper Windows XP SP3 install is 2000 Megabytes.
debian:~# su hipo -; cd windows;
debian:/home/hipo/windows$ dd of=hd.img bs=1024 seek=5000000 count=0
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.5505e-05 s, 0.0 kB/s
Notice here that the file dd will create will appear like 0 kb file until the Windows install from a BootCD is run with qemu.
5. Download an image of Microsoft.Windows.XP.Professional.SP3.Integrated.June.2011.Corporate from thepiratebay.org
Microsoft.Windows.XP.Professional.SP3.Integrated.June.2011.Corporate is currently available for download from the thepiratebay.org if in the times to come it is not available it will most likely be available from torrentz.net, isohunt.com etc. so I’ll skip more explanations with this step and let you use your favourite torrent program of choice to download the MS Windows iso. Just to make a note here I used transmission as this is my favourite torrent client. After downloading the iso I used K3B to burn the Image file as Bootable ISO. I’m naturally a GNOME user so to burn it as Image I just open it with K3B by using the GNOME menu and selecting Open with K3B
Next I instructed qemu to boot from the just burnt CD.
6. Boot windows Installation with Qemu from the Boot CD
debian:/home/hipo/windows$ qemu -boot d -cdrom /dev/cdrom -hda hd.img
Notice here that I’m running the qemu virtual machine emulator with a non-privileged reasons. This is important as qemu might have holes in the emulation of Windows Networking stack which if executed as root superuser. Can allow some malicious attacker to remotely compromise your GNU / Linux PC …
Qemu window will pop-up where one installs the Windows as it will install it using an ordinary PC. To switch qemu to fullscreen mode to have the complete feeling like installing Windows on an non-emulated PC ctrl + alt + f can be pressed.
The Windows installation took like 1 hour 20 minutes on my dual core 1.8 Ghz notebook with 2 GB of RAM. But I should say while installing I had multiple applications running; xmms, transmission, epiphany, icedove, evince etc. probably if I just run the Virtual Machine with no other applications to extra load my PC, probably the Windows install would have been done in max 50 minutes time.
After the installation is complete. To
7. Further run the installed Windows
debian:/home/hipo/windows$ qemu -hda hd.img -boot c
...
As a next step its necessery to;
8. Bring up the tap0 interface and configure it for the user
I’m running my qemu emulator with my user hipo , so I run cmds:
debian:/home/hipo/windows$ su - root
debian:~# tunctl -u hipo
Set 'tap0' persistent and owned by uid 1000
9. Enable ip_forwarding and arp proxy and for wlan0 and tap0
debian:~# echo 1 > /proc/sys/net/ipv4/conf/wlan0/proxy_arp
debian:~# echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp
debian:~# echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp
10. Install the proper Network Drivers inside Windows
That’s just in case, if they’re not supported by the Windows default existing drivers.
To do so, I downloaded my LAN drivers from the Vendor and put it on USB and sticked the USB drive to my laptop. In order to make the Kingston USB drive I used to transfer my LAN and Video drivers. I had to restart qemu with the parameter -usb -usbdevice host:0951:1625 , where I used lsusb to check and get the correct USB ID 0951:1625, like shown in the command below:
debian:~# lsusb |grep -i kingston
Bus 001 Device 006: ID 0951:1625 Kingston Technology DataTraveler 101 II
After on I booted again the Windows XP with the following command line in order to make qemu detect the USB Drive:
debian:/home/hipo/windows# sudo qemu -boot c -hda hd.img -usb -usbdevice host:0951:1625
One oddity here is that in order for qemu to detect the USB stick, I had to run it via sudo with super user privileges.Don’t ask me why this is the only way it worked …
Next on used the Windows device manager from Control Panel -> System -> Device Manager to point my undetected hardware to the correct Win drivers.
For the GUI preferring user qemu has a nice GNOME GUI interface called qemu-launcher, if you like to use qemu via it instead of scripting the qemu launcher commands, you can install and use via:
debian:~# apt-get install --yes qemu-launcher qemuctl
...
debian:/home/hipo/windows$ qemu-launcher

Another GUI alternative to qemu-launcher, which easifys the work with qemu is qemulator; here is a screenshot:

Tags: chmod, dd, debian gnu, download, experiment, favourite, file, Gnome, gnu linux, hipo, Image, image file, img, installation, installing windows, ipv, ISO, June, kernel module, Load, machine emulator, Microsoft, microsoft windows xp professional, mkdir, necessery, noah, Pack, Professional, proper permissions, qemu windows, Service, squeeze, time, Virtual, virtual machine, windows 2000, windows installation, windows xp, windows xp professional, windows xp service pack, windows xp sp2, work
Posted in FreeBSD, Linux, Linux and FreeBSD Desktop, System Administration, Windows | 1 Comment »
Monday, November 14th, 2011 
These days more and more people start to forget the g* / Linux old times when we used to copy CDs from console using dd in conjunction with mkisofs .
Therefore to bring some good memories back of the glorious console times I decided to come up with this little post.
To copy a CD or DVD the first thing one should do is to make an image copy of the present inserted CD into the CD-drive with dd :
1. Make copy of the CD/DVD image using dd
# dd if=/dev/cdrom of=/tmp/mycd.iso bs=2048 conv=notrunc
/dev/cdrom is the location of the cdrom device, on many Linuces including (Debian) /dev/cdrom is just a link to the /dev/ which corresponds to the CD drive. Note on FreeBSD the location for the CD Drive is /dev/acd0
/tmp/mycd.iso instructs dd CD image creation to be placed in /tmp/ directory.
bs argument instructs it about the byte size portions by which the content of the CD-Drive inserted CD will be read. bs value of 2048 is actually only 2KB per dd read, increasing this value will decrease the time required for the CD image to be extracted.
2. Prepare CD image file to be ready for burning
After dd completes the image copy operation, next to prepare the extracted image / ISO to be ready for burning mkisofs is used:
# mkisofs -J -L -r -V TITLE -o /tmp/imagefile.iso /tmp/mycd.iso
The -J option makes the CD compatible for Pcs running Microsoft Windows. The -V TITLE option should be changed to whatever title the new CD should have, -r will add up status bar for the mkisofs operation.
-r is passed to create specific file permissions on the newly created CD, -o specifies the location where mkisofs will produce its file based on the CD image /tmp/mycd.iso .
3. Burning the mkisofs image file to a CD/DVD on GNU / Linux
linux:~# cdrecord -scanbus
linux:~# cdrecord dev=1,0,0 /tmp/imagefile.iso
If all wents okay with cdrecord operation, after a while the CD should be ready.
4. Burning the mkisofs image file to CD on FreeBSD
freebsd# burncd -f /dev/acd0 data /tmp/imagefile.iso fixate
Tags: argument, byte, byte size, cd image, CD-drive, cdrom, conv, copy, dd cd, drive, file, file permissions, freeb, gnu linux, Image, image copy, image creation, image file, image iso, imagefile, ISO, isoIf, linux cdrecord, linux linux, location, Microsoft, mkisofs, mycd, new cd, notrunc, operation, option, size, size portions, status, terminal, time, title option, tmp, value
Posted in Linux, Linux and FreeBSD Desktop, System Administration, Various | 1 Comment »
Saturday, August 27th, 2011 Yesterday, most of the time I’m playing around with Squirrelmail, finally, time came when I had enough free time to fix the squirrelmail installed on mail.www.pc-freak.net
The installed version there has been broken after upgrade of the Apache webserver on the FreeBSD and failed with some stupid preg_match exception immediately after a user tries to login, anyways I decided to not install the squirrelmail from freebsd ports but rather download it directly from squirrelmail.org .
Installation went smoothly, however after testing to send email typing the email in Bulgarian with a default charset of (UTF-8) set from the Desktop machine from which I’ve written it, suddenly the sent emails encoding ended garbled.
One of my employees complained about receiving emails which are unreadable thus I proceeded immediately to check and fix the webmail letters encoding.
My logical first assumption was that the problem is caused by the FreeBSD missing a correct locale, thus the first thing I did in order to isolate the problem was check the installed locales:
pcfreak# locale -a | grep -i UTF-8|wc -l
56
As the above command output shows an UTF-8 locales was installed so I further checked if a specific locale for Bulgarian UTF-8 – bg_BG.UTF-8 is installed on the system:
pcfreak# locale -a |grep bg_BG.UTF-8
bg_BG.UTF-8
Being sure that the bg_BG.UTF-8 is installed I excluded missing locales as a possible problem cause.
Next I’ve noticed that locale command returns a default setting for my root and users set to:
pcfreak# locale
LANG=en_US.ISO8859-1
LC_CTYPE="C"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
Obviously the en_US.ISO8859-1 is not compatible with UTF-8, so I had to change a consult with the FreeBSD handbook suggested a way to change the LANG and LC_COLLATE locale set variables by creating a ~/.login_conf inside the user home directory which default locale has to be set.
In my case I assumed that possible the improper LANG is set to the running Apache as Apache is run via the init script /usr/local/etc/rc.d/apache2 , therefore to work it around for apache either I had to add manually:
LANG=bg_BG.UTF-8
somewhere near the beginning of the Apache init script, or alternatively set a proper .login.conf inside the root user home dir, e.g. /root/.login.conf. An example file which sets the default locale for the root user on BSD to LANG=bg_BG.UTF-8 , is shown below:
pcfreak# cat /root/.login_conf
me:
:charset=UTF-8:
:lang=bg_BG.UTF-8:
To fix the default encoding to be set to bg_BG.UTF-8 in all shell user accounts existing on pc-freak, I used a small script which copies the /root/.login_conf to all /home directories and immediately after chowns the user to be owned by the respective user, here is bash one liner script used:
pcfreak# cd /home; for i in $(echo *); do cp -rpf /root/.login_conf $i/; chown $i:$i $i/.login_conf; done;
Now after relogging to all active shells the default LANG character setting and LC_COLLATE were changed and I could see this by issuing again the locale command:
pcfreak# locale
LANG=bg_BG.UTF-8
LC_CTYPE="bg_BG.UTF-8"
LC_COLLATE="bg_BG.UTF-8"
LC_TIME="bg_BG.UTF-8"
LC_NUMERIC="bg_BG.UTF-8"
LC_MONETARY="bg_BG.UTF-8"
LC_MESSAGES="bg_BG.UTF-8"
LC_ALL=
To make sure the apache is reading the new LANG locale settings, further on I forced apache restart:
pcfreak# /usr/local/etc/rc.d/apache2 restart
I opened a browser and sent one more mail typed in cyrillic with squirrelmail addressing my own email to test, if finally the mail char encoding issues are gone. But NOO!! still the same issue.
I was out of ideas as it seems there was no logical reason for the cyrillic letters to break when sent via squirrelmail.
And then the lightbulb was up with the idea to check the squirrelmail configuration encoding itself, thus I launched immediately the squirrel ./configure script and guess what, the encoding there was also imroperly SET to en_US.ISO8859-1!
pcfreak# cd /var/www/webmail; ./configureSquirrelMail Configuration : Read: config.php (1.4.0)
----------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
...
8. Plugins
9. Database
10. Languages
Command >> 10
SquirrelMail Configuration : Read: config.php (1.4.0)
----------------------------------------
Language preferences
1. Default Language : eu_US
2. Default Charset : en_US.ISO8859-1
3. Enable lossy encoding : false
Command >>
To change the encoding to properly play with Bulgarian, cyrillic in UTF-8 I choose:
Command >> 1
SquirrelMail attempts to set the language in many ways. If it
can not figure it out in another way, it will default to this
language. Please use the code for the desired language.
[en_US]: bg_BG
Command >> 2
SquirrelMail attempts to set the language in many ways. If it
can not figure it out in another way, it will default to this
language. Please use the code for the desired language.
[en_US.ISO8859-1]: bg_BG.UTF-8
Finally to save the new settings into squirrelmail configuration used the S cmd:
Command >> S
...
And Hallelujah! My Bulgarian letters started being properly encoded and sent in squirrelmail 😉 thx God
Tags: apache webserver, assumption, bg, charset, code, collate, config, configure, CTYPE, default locale, Desktop, desktop machine, download, exception, free time, freebsd handbook, freebsd ports, grep, home directory, init, installed version, ISO, lc, login, machine, mail, MONETARY, numeric, pcfreak, php, preg, root, script, Squirrel, thislanguage, time, time c, utf 8, webmail
Posted in Linux, Linux and FreeBSD Desktop, System Administration, Web and CMS | 1 Comment »