Creating a bootable .img file [closed] - linux

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 years ago.
Improve this question
I have problem with making .img file which I can make it bootable in USB.
I have Folder consist of many RPM files include linux distrobution and some bash script file and etc. the bash script install Linux server and two other software besides set MySQL and PHP. I want to make .img file from this folder so when I just make the .img file bootable to boot from USB, it is supposed to automatically install everything in the computer.
My problem is that I don't know how to make such .img file. is there any specific bash command that should I use? Could you help me to do this? Some clues and documentations to read and understand the process or any software to use, is really perfect. I really appreciate your help.
Thank you.

The answer is:
Don't do it.
At least not in the way you're proposing.
You are specifying a solution to a problem without really defining your requirements. How many standard packages? How many/how big are your additions? What are the gating items (e.g. need web server, need sshd)? Do you need just a few standard packages or several hundred?
Linux distros, such as Redhat, CentOS, Fedora, Canonical/Ubuntu, Debian, expend considerable man-hours to get this right.
So, you need to know what distro you're using. By mentioning rpms, you're probably using Redhat, CentOS, or Fedora. They have procedures to create "live" CDs (and/or USB sticks) and "full install" DVDs. But, this can be a big job, particularly if you're trying to graft on extra files that they don't know about.
I highly recommend you use a standard installer for your distro [that has been heavily QA'ed]. Then, after installation and reboot, extract your additional packages from separate media or download from a server you control. The install media for your stuff could consist solely of a bash script that creates /etc/yum.repos.d/mystuff.repo and kicks off a yum install mystuff
Also, if you were to do a plug-in-and-boot installer, do you want it just erase/repartition the main hard drive without asking (e.g. full automatic)? Or, do you want it to show the existing partitions, etc. like standard installers do?
Getting back to requirements, why do you need to have a one shot installer?
How many systems are you going to install this on? 5, 10, 100, 1000? Are they all in a server farm? You might be better off with PXE boot and boot/install from a central server.
For example, Google has hundreds of thousands of servers [or more]. They have a need for this. But, they also have entire teams of developers devoted to the in-house methodologies that they use.
How often are you going to have to do this for a given server? After the initial install, what is your plan/method for updates (e.g. yum, etc.)?
By using the standard install, you're not responsible for QA of the entire system [standard system + your custom stuff], only your custom stuff.
For example, Fedora discourages any "full install". They now prefer the "live boot" and install from Internet approach.
One of the reasons is that the full install disk gets created [with lots of QA]. But, it's static. If a package has an update, the full install will install the old, unpatched version.
I've had cases where I used it, then did yum update after reboot. The full install disk installed some things that became obsolete/incompatible within a week or two after release. They clashed with the update and things became broken. I had to intervene manually. This is much less likely to happen with a live boot install that will download the latest [and presumably most bug fixed] packages.
On the fedoraproject.org site, you can find documentation on creating live CDs and/or USBs. They can even show you how to add some custom files. Other distro sites will have similar documentation.
BTW, I have doing OS install kits since 1981, so all of the above comes from experience. I've created them from scratch and hacked up ones from distros.
Can it be done? Sure. Do you really want to do it or should you want to do it? Well, maybe. Just be aware of what you're taking on in terms of maintenance.

Related

Using Schwab StreetSmart Edge Cloud on linux - Citrix Error [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
The Problem
Schwab only supports Windows and Mac for its StreetSmart Edge Cloud (SSEC), not Linux. However SSEC is Citrix based, which has a Linux implementation. Unfortunately, it does not work out of the box. How do I get it working on Linux?
Background
One of the most difficult type of software to find on Linux is investment trading software. For years, I had to maintain a Windows machine for this purpose alone.
One of the most sophisticated platform for this is Schwab SmartStreet Edge Cloud version. The only problem is that Schwab only supports Windows and Mac, not Linux. Of course there are other trading platforms, but few can be installed on Linux and I like StreetSmart best.
But isn't Mac a close cousin of Linux? Why can't we seem to get trading software to work on Linux, especially when it is a cloud version of the trading platform? After all, anything that you can do on a Win or Mac browser, you can do on a Linux browser.
So, my question is how can I install a trading platform with all the sophisticated charting and complex trading parameters, such as stop, limit and bracket orders?
Solution
Now, I am going to answer my own question with a solution.
Here is what worked for me. I have been using StreetSmart Edge for over 6 months on my Linux with this solution. Best of all, it does not rely on Wine or dual booting.
Step 1
Download the latest Citrix Workspace app for Linux Web client (x86_64) for 64 bit architecture or (x86) for 32 bit architecture or (ARM HF) for ARM processor machines. I have only tested on the (x86_64), so cannot speak for the others.
Go to the citrix.com and look for the workspace app download page.
Under Available Downloads, choose the type of package you need. I chose Debian Packages. You may need the RPM Packages. Choose the Web Packages (Web Workspace app only) download for your architecture.
On Debian, you are immediately offered a chance to install with GDebi. Click on OK to install.
On RedHat type distros, there are analogous steps.
Or simply install the downloaded file manually, using your OS normal installation procedure for downloaded packages. Be sure you use a method such as GDebi to install needed dependencies as well.
Everything should appear to install correctly without an error message, however, when you try to launch StreetSmart Edge Cloud, you will get the following error message:
SSL error
Contact your help desk with the following information: You have not chosen to trust "DigiCert Global Root G2", the issuer of the server's security certificate (SSL error 61).
Step 2
Create a soft symbolic link to DigiCert_Global_Root_G2.crt which should be in your mozilla ca-certificates.
In my case - Debian 9 - the command to create the symbolic link was as follows:
sudo ln -s /usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G2.crt /opt/Citrix/ICAClient/keystore/cacerts/DigiCert_Global_Root_G2.pem
You may need to search for the mozilla directory to find the correct path for your setup. Also, you may need to search for the Citrix ... cacerts directory to find the correct path for your setup. Replace the ln -s syntax above with the one corrected for your paths.
Step 3
Reboot. I am not certain this is actually necessary, but it can't hurt.
Hurray! You should now be able to use Schwab StreetSmart Edge on your linux.
Now go out and make lots of money and donate it to charity. ... that includes supporting your favorite open source software!!

Switching to linux [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I've been using linux at university for quite a while, and it seems much more customisable and better for coding.
So I want to switch to linux from windows 7 at home.
What branch of linux should I use? I'm an emacs user if that gives any insight.
Which desktop enviroment should I use? At uni we use KDE, but it's too graphical, often I just click on stuff instead of using the terminal. I want one where it encourages me to use terminal more.
and the biggest question, how do I install it all? Should I put everything on external hard drive and wipe my computer completley?
I primarily program in Java and python.
I would recommend that you first try using Linux off Live CD/DVD. Linux Mint, Ubuntu, etc.
Just download and burn .iso onto blank media and boot your computer off of it. Just play around, check various desktop environments, see if all your hardware work with the specific Linux distribution. This step is very useful to decide which distribution you actually want to install onto your computer, especially the latter since, while it has been improving, the biggest obstacle you may face in configuring your computer to run on Linux is often hardware incompatibility. Just make sure everything that you need to work actually works.
If you have no issues wiping out Windows, Linux installation is pretty straightforward these days. It even takes less time in general than re-installing Windows. I would browse the web for an installation note for your specific computer model to see if anyone has already successfully done so, so that you can just follow. That saves a lot of time.
I use Debian (Wheezy now) and KDE. It's very easy to install and switch desktop environments after installing Linux though, so that shouldn't be any concern.
I suggest creating a virtual machine using VMWare or Virtual Box. As far as the distribution goes, Linux Mint and Ubuntu are pretty user-friendly for first time installations. And for the desktop environment, I suggest XFCE.
A few Google searches will do you good. I think a virtual environment will be much more easier to manage than partitioning a hard-drive.
Well, the installation step, if you use Windows 7, you may want to make a full backup of your hdd - so if things go wrong you will be safe and able to recover.
I was in somewhat similar situation recently - figuring out which linux distro to use. Previously I had luck with ScientificLinux, but this time it didn't like my laptop hardware for some reason - after wake-up wireless network card was getting stuck and wasnt picking any signal. I didn't want to recompile kernel etc., so I installed Ubuntu, but the Gnome 3 was a show stopper - I had to roll back to Gnome 2, but later I tried and liked a lot XFCE desktop - which I use right now on my workstation and laptop.
Java, Python and emacs probably work well with any linux distribution out of the box, so it is up to you which one to choose after all. Good luck!
Sorry, forgot to mention - all contemporary Linux distributions are able to install a dual boot feature - so you can keep your Windows 7 setup along with Linux (if you have enough of free space), moreover Windows partition will be accessible from Linux which is handy sometimes.

How easy is it to make a Linux distribution? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
From what I have been reading a Linux distribution is little more than a packaging of a kernel with various packages and some limited configuration details, such as which window manager and GUI to use by default (assuming you even want a GUI, blech). In the old days apparently there were some unique advantages to distributions. For example, Red Hat had Red Hat Package Manager (rpm). Of course, nowadays rpm is no longer a unique advantage of Red Hat.
So, why even bother bother with a distribution? Why not just install a kernel and bunch of packages of one's own choosing? What's the complexity?
Basically, a GNU/Linux Distro IS a kernel and a "bunch of packages" (GNU packages) of one's choosing.
People creates distros to perform specific tasks, like server, desktop distros, multimedia oriented distros, etc.
Creating a linux distro can be a really educational task, as you can get to know how a linux system is build from scratch.
I recommend you cheking LFS (Linux From Scratch). Its a project to guide you on assembling your own linux distro from scratch, and believe me, its a great fun and indeed YOU WILL LEARN A LOT.
If you'r intereseted on getting to known how a linux distro works, don't miss this.
The webpage says:
Many wonder why they should go through the hassle of building a Linux system from scratch when they could just download an existing Linux distribution. However, there are several benefits of building LFS. Consider the following:
LFS teaches people how a Linux system works internally
Building LFS teaches you about all that makes Linux tick, how things work together and depend on each other. And most importantly, how to customize it to your own tastes and needs.
Building LFS produces a very compact Linux system When you install a
regular distribution, you often end up installing a lot of programs
that you would probably never use. They're just sitting there taking
up (precious) disk space. It's not hard to get an LFS system installed
under 100 MB. Does that still sound like a lot? A few of us have been
working on creating a very small embedded LFS system. We installed a
system that was just enough to run the Apache web server; total disk
space usage was approximately 8 MB. With further stripping, that can
be brought down to 5 MB or less. Try that with a regular distribution.
LFS is extremely flexible Building LFS could be compared to a finished
house. LFS will give you the skeleton of a house, but it's up to you
to install plumbing, electrical outlets, kitchen, bath, wallpaper,
etc. You have the ability to turn it into whatever type of system you
need it to be, customized completely for you.
LFS offers you added security You will compile the entire system from
source, thus allowing you to audit everything, if you wish to do so,
and apply all the security patches you want or need to apply. You
don't have to wait for someone else to provide a new binary package
that (hopefully) fixes a security hole. Often, you never truly know
whether a security hole is fixed or not unless you do it yourself.
Of course there are other tools to create a linux distro based on your HD installation, maybe for backuping purposes.
Linux Live
And lot of other scripts to get you started, just google for them.
Of course, all of them are like automatically tools oriented for the user, so don't expect to learn a lot from them.
There are lots, thousends of linux distros out there, so obviously is a waste of time to try to make the "ideal" linux distro and compite with ubuntu, mint, etc.
I still recommend you to check out Linux From Scratch, just as a weekend educative project . Trust me, you will learn a lot.
It covers also embedded linux distro creating, to target ARM processors and so.
If you're on the embedded world, Yocto Project worths a look.

Learning resources for Linux filesystem, command line, and structure [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
Can anyone suggest some good materials for learning more about the Linux filesystem and command line? I have found myself frequently confused as to what programs go where on the Linux filesystem. I would like to learn how the various directories (var, etc, usr ...) are used and how to use the commandline more effectively.
I come from the Windows development world (.NET developer) so I am very familiar with Windows system administration. However, when doing more and more work with PHP I found myself lost in the internals of Linux (specifically Ubuntu). For example I was having problems installing PEAR properly on my Ubuntu system and not understanding why it was installed where it was.
All of my interactions with Linux machines is done via SSH so I would like to focus on the command line and the filesystem. Thanks for any suggestions.
Though as with any operating system, you don't really learn to get truly comfortable with it unless you actually start using it on a daily basis. You can learn the basics from books and online tutorials, but if you want it to feel "natural" you'll have to jump right in and start actually using it regulary.
A nice way to "wet your feet", if you don't want to convert from windows, is by installing Cygwin (www.cygwin.com) on your windows machine and start to use it regulary (some discipline is required here, and it's not the best way to learn - but it's useful now and then). This also has the added benefit of automatically getting all nice *NIX utilities that can be a lifesaver when you're a programmer (awk, sed, bash, grep, tail, emacs, the list goes on...).
Unix in a Nutshell - Amazon
http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=unix+tutorials
In terms of learning some of the basic commands, you may find this post on superuser helpful. As for the directory structure, you may find this Wikipedia entry on the Filesystem Hierarchy Standard useful.
/!\ Ubuntu rant /!\
I've seen a lot of programmers using Ubuntu when they needed a Linux distro, and nearly all of them used it the "Windows way" instead of the Unix way.
They used the GUI as much as possible, didn't read the docs, didn't care about how things work.
If you feel motivated and have the time, I suggest that you use a more basic distribution.
Personnally I use Arch Linux and I love it, although its packages aren't exactly stable.
Another good choix would be Debian or Slackware.
It's not that difficult.
A few years ago, I didn't even exactly know what Linux was, but after some time I've been able to use it on a daily basis without any problem.
You just start with a basic command-line system, learn how to install and configure programs, and then install a graphic environment, a browser, an editor, ...
Since you installed and configured everything yourself, you usually understand what errors mean, while Ubuntu users generally have no idea how what might have broken.

How to make Windows Flash games run on Linux? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 years ago.
Improve this question
I have some educational flash games for Windows (legally bought), that I would like for my daughter to be able to use on her OLPC.
I know that some users have been able to run them under Linux by using wine, but that is really not an option on the OLPC as they need the cd in the drive to run, and the OLPC does not have a cd drive.
The games are installed from cd, and then run from an exe file. They need the cd to be in the drive while in use.
I have seen that there are some flash decompilers available, so I was thinking if it might be possible to decompile the the game and then recompile it for Linux?
Update
After some further research and experimentation, I have gotten a bit closer to running the games.
It turns out that the exe is a projector (made with Director), and all it does is run a dxr file in a subdirectory. I can open this file directly in the flash player, but it is only the initial menu from which you can choose the various activities.
The problem is that when you select an activity, you get an error like 'Unable to find file: "\SUBDIR\ACTIVITY"'.
The subdirs from the activities are on the same level as the subdir with the menu. So I have tried making a stub movie that just runs the menu, and starting it from the root dir (same as the original projector). I runs the menu just fine, but it still gives the same error for activities.
It probably depends on what you mean by a "Windows Flash" game. Flash content normally exists as a SWF, which is platform-independent and can be played on any OS (in theory - the actual quality of Linux flash players has been inconsistent). So if you can find the SWF content of these games, then simply copying them where you want may do the trick.
However if these games are normally executed off a CD, then there may likely be more to it. If the CDs appear to have the game content in EXE form, then you may be looking at projector files. A projector is basically an EXE that wraps together the Flash player and the SWF content to be played, giving you an EXE of your content that can be run on a system without Flash installed. If this is what you have, then copying that EXE to the target system and running it under wine may work. However, the projector may have some sort of logic in it to prevent it from running except of a CD drive. I'm not sure what can be done with that. I believe there are tools that can extract the SWF content out of a projector, but I can't vouch for any of them. (That would probably also violate the license you bought the games under, for what that's worth.)
Finally, all the above is assuming that these games exist as something that is run directly off the CD. If these are things with install/uninstall functionality, then even if parts were developed in Flash, getting them to work under linux is probably no different than any other application.
Check out the OLPC wiki for help.
They have this page for installing Adobe Flash Player, which is probably the best place to start.
New answer for the updated info that the games run from an EXE. In this case, it sounds like your problem isn't running these games on Linux, your problem is running them without the CD.
As for the possibility of recompiling, if the games are installed from a CD, then even if the content of the game is Flash it sounds like the container is a regular installable Windows application. (Unless it's an Adobe AIR app, but I'm assuming you'd have mentioned.) In this case, recompiling the Flash content wouldn't do anything, because the CD check would surely be part of the win app logic, and not be done from inside Flash.
Try making and iso image of the disk and mounting it on a virtual drive then try and run it under wine
Install wine, then swift flash player. That is the best way for swf files.

Resources