Home » How do I install Ubuntu alongside a pre-installed Windows with UEFI?

How do I install Ubuntu alongside a pre-installed Windows with UEFI?

Solutons:


If you are using Ubuntu 16.04+, many issues with compatibility are now solved. But still, depending on the version you are using and the hardware/model you have, you might need all or some of the steps provided in this answer.
If you are reading this in August 2017+, I can say that with Ubuntu 17.04 I have installed it on over 40+ Laptops with UEFI, ranging from Lenovo, Dell, HP, Sony, Acer and Toshiba where the models were 2016 and Up, and I have had no issues at all installing Ubuntu by simply following the steps in the installer. With the basic steps I mean:

  1. Insert the Ubuntu USB Installer
  2. Select Install Ubuntu (Install Ubuntu alongside Windows)
  3. Select Wireless Card & Upgrade 3rd Party software while installing Ubuntu
  4. Finish installation and see Ubuntu install without any issue with Windows or Ubuntu.

Now, this is not a 100% full proof verification. Am just mentioning that I am impressed by the fact that out of 43 total Laptops, 43 did not have any issues whatsoever on my end. Still, if you do have an issue, this is the reason why this guide was created.

Before explaining the steps to do it, I want to be clear that I have tried many ways of installing Ubuntu with versions older than 15.04 (Or any other distro for that matter) from within Windows 8 or Windows 10. No luck. Microsoft Windows really created a big mess for all Linux distributions. If you have a pre-installed Windows 8 system, you will probably never be able to install Ubuntu or any other OS in the normal (LiveCD/LiveUSB) or Wubi way. This is because Windows 8 introduced several new features, of which 2 are:

  • UEFI which substitutes what we have known as the BIOS (an alternative to)
  • Secure Boot which prevents anything but the installed operating system, in this case, Windows 8 from booting. This is no longer the case for Ubuntu since 12.04.2 so there is no need to disable secure boot.

On a further note I want to mention something about Secure Boot taken from the UEFI Wiki

SecureBoot

“Secure Boot” is a new UEFI feature that appeared in 2012, with Windows 8 preinstalled computers. Ubuntu supports this feature starting with 12.10 64 bit (see this article) and 12.04.2 64 bit, but as PCs implementing support for it have only become widespread at the end of 2012 it is not yet widely tested, so it’s possible that you may encounter problems booting Ubuntu under Secure Boot.

IMPORTANT: If you do find a bug, please file a bug report against the shim package in Ubuntu, preferably using the command:

ubuntu-bug shim

once you’ve installed with Secure Boot disabled. As mentioned by slangasek:

It is not required to disable SecureBoot in the firmware to install
Ubuntu on a Windows 8 machine. Ubuntu 12.04.2 and 12.10 are
SecureBoot-compatible. Any machine that ships with the recommended
Microsoft Third-Party Marketplace keys in firmware will be able to
boot Ubuntu under SecureBoot. If there is any problem file a launchpad
bug for the shim package.

I also want to notify that I spend this week testing 15.04 and had an excellent outcome. Of 12 Laptops ( 4 Toshibas, 3 HP & 5 Lenovo) where Windows 8.1 was pre-installed, on all cases, Ubuntu detected the Windows Boot Manager correctly, gave the option to install alongside Windows 8.1 (It actually said Install alongside Windows Boot Manager) and solved any issues that appeared on previous Ubuntu versions. I basically did not have to do anything else on this cases. This was with Secure Boot on and on an EFI enabled boot system. I also. Tested 4 Windows 10 PCs and it worked perfectly with 15.10 & 16.04.

This does not mean that in your case it will work perfectly, it just means that on my cases, I had a 100% Ubuntu Perfect installation. Again, with 15.04 (Also on 15.10 and 16.04. On all cases it was 64-bit). I even had talks with users like Marius Nestor from Softpedia who actually had to disable Secure Boot in order for the installation to work, so it should be noted that, even if I currently have an excellent experience with Secure Boot, you might not. Keep this in mind when all else fails (We can thank Marius for his excellent contribution). I would in any case, send the bug report to the provided link above.

So with all of this said, installing Ubuntu via WUBI is not doable (not recommended at least from me), things like trying to boot for example with the Windows 8 bootloader are not possible right now unless something changes in the future (There are also some bugs related to this in launchpad, like the one mentioned by bcbc). Apart from this, WUBI does not work from within Windows 8 and up if you have UEFI with a GPT Partition (Not MS-DOS type partition). Pleas read Does UEFI support mean Wubi will now work on laptops shipped with Windows 8? for more information.

Not only that, but trying to install 32 bit Ubuntu is impossible. You need the 64 bit version for everything to work correctly. Read more about Wubi in Can I install Ubuntu inside Windows?

The following is a small guide to install Ubuntu with a Pre-Installed Windows 8 or 10 system. The steps HAVE TO BE done in the precise order I mention them here to get everything started. If a step is skipped or done before another, you will most likely end up with some of the problems mentioned at the bottom of this guide.

For the time, you need to do it via a LiveCD, LiveDVD or LiveUSB, assuming (actually requiring) you have the following points:

  • You are using a 64-bit version of at least Ubuntu 12.04.2. 32-bit versions will not work.
  • Your system came with Windows 8 or 10 pre-installed (And you do not want to delete it)
  • You are not installing Ubuntu inside of Windows 8 or 10 but rather alongside of it. Inside it is impossible because it needs Wubi which is unsupported.
  • Your system has UEFI activated (And cannot be disabled) with Secure Boot.
  • You have already created a free space for Ubuntu from within Windows 8 with at least 8 GB (I recommend to leave at least 20 GB or so, so you can test the hell out of it).
  • You made sure that you actually have free space left on the drive to create the needed partitions and you also made sure that you did not have all primary partitions used (In case of using an MS-DOS Scheme) because this will create a problem with the Ubuntu installer showing you only the “Replace Windows” option instead of the “Alongside Windows” option.
  • You know how to burn a LiveCD, LiveDVD or LiveUSB from within Windows 8. If not, look for Windows apps that can do that for you. I do mine in another PC with Ubuntu ^^.
  • Windows 8 was not shutdown in either Hibernation mode or any other mode (‘fast start-up’ which is by default on Windows 8) that leaves it on a saved state. Shutdown Windows 8 in the normal way, with the shutdown option. This will prevent other problems related to this from appearing. Read the bottom (TROUBLESHOOT) of this answer for more information regarding this point.
  • You are installing on an MS-DOS type disk scheme (You can only have 4 primary partitions as opposed to GPT Scheme) which has at least 1 Free Primary Partition (You can find out the type of scheme you have from here if operating on an Ubuntu Live CD or here if from Windows). Remember that if you are already using 4 Primary Partitions no partitions will appear on the Ubuntu installer since there are no more Primary partitions left to use (MS-DOS type partitions are limited to 4 Primary ones, GPT are limited to 128). This happens a lot on many laptops that come with 4 pre-created primary partitions. If you are installing on a GPT type partition and want it to boot, you need to leave UEFI enabled.

PLEASE READ THE ABOVE POINTS SINCE MANY USERS JUMP THIS PART AND WHEN THEIR PROBLEMS ARE FOUND IT NORMALLY IS BECAUSE THEY DID NOT FOLLOW ONE OF THEM.

Before we start we need to do the following:

Run compmgmt.msc on Windows 8. From there on, create a partition with enough size. Note that I mention creating this FROM Windows 8 because I have had cases where doing the partition from the LiveUSB rendered Windows 8 unbootable, even after doing a boot repair. So to remove that problem or have a greater chance of removing it (Or simply skipping the problem altogether) and making sure both systems work, partition your hard drive from within Windows 8 first.

Now follow this steps to have a working Windows 8 + Ubuntu installed on your system:

Windows 8 + Ubuntu

We first need to know with what type of motherboard options we are dealing with. Open a terminal (By going to the start menu and typing PowerShell for example) and run the terminal as an Administrator (Right Click the app that will show in the start menu and select Run as Administrator). Now type Confirm-SecureBootUEFI. This can give you 3 results:

True – Means your system has a Secure boot and is Enabled

False – Means your system has a Secure boot and is Disabled

Cmdlet not supported on this platform – Means your system does not support Secure boot and most likely you do not need this guide. You can install Ubuntu by simply inserting the LiveCD or LiveUSB and doing the installation procedure without any problems.

If you have it Enabled and have the necessary partitioning done then we can proceed with this guide. After booting into Windows 8 we go to the power off options and while holding the SHIFT key, click on Restart.

enter image description here

(This is a really old trick on most Windows, even since Windows 3.1 where you hold a key to do something special when rebooting)

Windows 8 will show you a totally different restart window:

enter image description here

When you get the menu above, select Troubleshoot

You will then get the following options:

enter image description here

Select UEFI Firmware Settings

NOTE – In the Spanish version of Windows 8, the option for UEFI Firmware Settings is not available in several laptops, tested Lenovo, HP, and Acer. They do have an option to boot the computer and another custom menu will appear which lets you do a couple of things. In the case of Lenovo, you will not have an option to install Ubuntu with Windows 8, the only option is to remove Windows 8 completely. This only applies if you are not using 15.04+.

THIS IS AN IMPORTANT PART

The system will reboot and you will be allowed to go to the BIOS (If not press the appropriate key, some common are DEL,F2 or F10).

In this part, I can’t help much since each BIOS is different for each Motherboard model. There are 2 options you can take here, both of which are optional since Ubuntu might install without any problems at all. You can either look for an option to disable Secure Boot or an option to disable UEFI. In some cases you will be able to find both, it will show in the BIOS as an option called Secure Boot or Enable UEFI.

If you find this options, then depending if you cannot install Ubuntu with Secure Boot enable then disable Secure Boot (Remember to report this as a bug using ubuntu-bug shim), to be able to still stay in UEFI mode and also be able to Boot with Ubuntu. In some motherboards, this will be the only option you actually need to change and also will be the only option you see related to UEFI because they will not offer the possibility to disable UEFI.

DUAL BOOT ISSUES

I would also like to mention an important note here. If you happen to install Ubuntu in Legacy Mode (No SecureBoot) you might have problems booting both, Windows and Ubuntu at the same time since they will both not appear on a Dual-Boot Menu. If you have Windows on UEFI for example and you install Ubuntu on Legacy Mode, you will only be able to boot to Ubuntu in Legacy Mode and Windows in UEFI Mode.

So before proceeding, make sure that you are installing Ubuntu with the same boot options as Windows. This way you will be able to choose which one to boot from in the same boot menu and not worry if one will work or not. From the Ubuntu UEFI Guide
you can see that there is a section that teaches you how to know if you actually installed Ubuntu in the same Boot setup as Windows (UEFI Mode):

An Ubuntu installed in EFI mode can be detected the following way:

    its /etc/fstab file contains an EFI partition (mount point: /boot/efi)
    it uses the grub-efi bootloader (not grub-pc)
    from the installed Ubuntu, open a terminal (Ctrl+Alt+T) then type the following command:

    [ -d /sys/firmware/efi ] && echo "Installed in EFI mode" || echo "Installed in Legacy mode" 

So if you have ANY dual boot problems, this could be the problem. Please read the Ubuntu UEFI Guide since it covers various ways of solving Dual boot problems and converting Ubuntu to Legacy or EFI mode. I have already tested this with various Ask Ubuntu members that helped me apart from 2 Laptops I was provided with for the testing. This should then solve any Dual Boot problems related to Windows 8 + Ubuntu, but I again encourage anyone with problems (same or new) to file a bug report as mentioned above. The Ubuntu Developers are working very hard in providing an easy to install solution for all cases and this is one of the top priorities.

Continuing with the guide, in other motherboards that do offer the possibility to disable UEFI which would completely eliminate UEFI and Secure Boot on it and boot in the normal BIOS like way, if you find this is the way you want (To have a UEFI free computer and not face any of the problems related to this) then, by all means, do it. I for one have tested the Intel DZ68DB and did both case studies. Remember that doing so will make the Dual Boot process not work in almost all cases you will be left with a system that either Boot Windows in UEFI or Boots Ubuntu in Legacy.

With that in mind, remember to also select the Boot Order to make sure that it boots either your CDROM, DVDROM or USB Drive so you can boot from your Live Ubuntu image after rebooting.

Some points we should consider before continuing:

  1. If Windows 8 was installed with UEFI enabled, it is highly recommended to stay in UEFI, although if you still want to disable it for specific reasons you can, GRUB will create the bootable part for Windows 8. But if you do disable UEFI and want to access Windows 8 afterward (before installing Ubuntu), it will not work since the boot part for Windows 8 needs UEFI (Again the Dual Boot problem).

  2. If you only disable Secure Boot, there is no problem in some cases. You are only disabling the part that creates the most problem between Windows and Linux, which is the one that prevents Ubuntu from booting correctly. In either case, I encourage you to first try to install Ubuntu with UEFI/Secureboot, since in most cases it will work. if you disable any of them and install Ubuntu, you might not be able to boot to Windows 8 afterward through the GRUB Boot Menu.

Now before saving, some motherboards offer a Boot Mode option. Verify that this option is not pointing to UEFI Boot but instead to CSM Boot (Compatibility Support Module) which provides support for Legacy BIOS like systems.

Other systems offer a UEFI Boot option you can enable or disable. Depending on the options I mentioned above you can set this to the one you want.

And lastly, others offer a UEFI/Legacy Boot First option where you select which one you wish to use first. Obviously, the option is self-explanatory.

Now save the changes and reboot.

When the Ubuntu Live image starts, it will show rather different than the normal one we are all used to. Do not worry, this is because Ubuntu has an alternative boot option when a system has EFI installed. Just select everything like you are used to. I highly recommend reading the following article in the Ubuntu site regarding Ubuntu installations when using UEFI. If there is a problem, then try to create a small partition (About 250 MB of size) for the EFI part of the system. This is done in the installation part where it asks you if you want to install on the desired partition or used the Advanced Options. Select the advanced options if you come up with a problem. In there, create a 250 MB partition for EFI and the rest for GRUB and other stuff you are accustomed to.

I think up to here you should be fine and have avoided several problems typically found when trying Ubuntu with Windows 8 which are:

  • Not booting a LiveCD/LiveDVD/LiveUSB/Wubi
  • Not installing Ubuntu because of security issues (Yeah right, more correctly monopoly issues)
  • Not booting either Windows 8 / 10 or Ubuntu (not showing either one of them)
  • Not letting Ubuntu create a partition
  • Not recognizing the EFI part of the system
  • Ubuntu not recognizing the Windows 8 / 10 Partition
  • Not seeing GRUB and booting directly to Windows
  • Windows 8 / 10 not booting or readable because or partition changes are done from Ubuntu

TROUBLESHOOTING

YOUR COMPUTER BOOTS DIRECTLY TO WINDOWS

This is a common problem and if you do not get a GRUB menu, re-installing or repairing grub will NOT HELP

Every BIOS/EFI system is different, it might look like one of the following pictures:

UEFI 1

UEFI 2

Notice the “UEFI Boot Option Priority” or “Boot Option Menu”. Usually, Windows is the default and Ubuntu (or as in the second picture elementary OS) will be an option.

Once you select Ubuntu on the UEFI boot menu you will then get a grub menu. You should be able to boot either Ubuntu or Windows from the grub menu.

Another issue that could make the system boot directly to Windows (without even showing the GRUB menu) is if either Windows took hold of the boot manager or after installing Ubuntu, the EFI partition was not properly configured for Windows. To solve this, simply go to Windows and open a terminal, then type the following (Need Administrative Privileges):

bcdedit /set {bootmgr} path EFIubuntushimx64.efi

This will configure the Windows Boot Manager to take into consideration the GRUB Boot Manager. This could still happen even after running the Boot Repair from within Ubuntu. So making sure that Windows reads the Ubuntu EFI partition, in case you are using an EFI boot system instead of the old BIOS will solve it. In the above command line, the difference between shimx64.efi and grubx64.efi is that shimx64 is the actual Microsoft signed binary that works with Secure Boot enabled while grubx64 is the normal grub binary (Not signed).

Windows 8.1 / 10 Not Recognized / Ubuntu not showing option to Install Alongside

If you have followed all the steps above including making a partition ahead of time through Windows 8.x, proceed with the normal Ubuntu installation. When you arrive at the option to how you would like to install it if you do not see the option to install Alongside it, select “Something Else” instead of wiping the hard drive. Configure the new partition layout on the empty space you’ve set aside that isn’t Windows 8 / 10.

You need to create at least 1 partition for the root system (Which shows as the symbol “https://askubuntu.com/”) and set it to Ext4, another for SWAP (Virtual Memory). The SWAP space can be as small as 128MB if you have a lot of ram or as high as 4GB. With this 2 partitions created based on the empty space you provided you should be ready to proceed. And one last one for the EFI part which should be around 100MB.

When the installer asks where to put the bootloader, tell it to put it on the partition with the type “efi”. This will install GRUB which will load once your system starts in the future which will give you the choice of going with Ubuntu (or whatever flavor is installed) or going to the Windows Boot Manager which will take you to Windows 8.

I would also recommend reading the following links to get additional information on some issues and causes in this particular part:

  • “Install alongside” option missing. How do I install Ubuntu beside Windows using “Something Else”?

  • How do I install Ubuntu alongside UEFI enabled Windows 8?

  • How to use manual partitioning during installation?

REPAIRING THE BOOT

After finishing the installation, if you happen to have Windows 8 disabled from booting and it only boots to Ubuntu, do not worry. In Ubuntu after it boots, install Boot-Repair in Ubuntu by opening a Terminal and typing the following:

sudo add-apt-repository ppa:yannubuntu/boot-repair  
sudo apt-get update
sudo apt-get install boot-repair
boot-repair 

Boot Repair will mention that we have some GRUB error, that we have an EFI system and that Ubuntu rocks. Since Ubuntu rocks (It does not work if Ubuntu does not rock! ^^), just click on Apply so boot repair fixes everything. Now reboot and you should see Windows 8 and Ubuntu side by side.

For cases with rare booting problems, partitioning or using old hard drives on a newer motherboard, your solution might be checking out FixParts which solves misaligned partitions and other partitioned type problems.

If you are experiencing one of the following issues:

  • Loosing Data when copying from Ubuntu to Windows 8 after shutting down Windows 8
  • Can not access your Windows partitions from Ubuntu getting a Disk contains an unclean file system

    This is most likely the cause of an option in Windows 8 called Fast Startup which behaves similar to hibernation and keeps a snapshot of the system so when you boot up, it will load faster. Since it keeps a snapshot, anything you copy or change in Windows 8 from Ubuntu after doing the fake shutdown will be lost (Apart from other issues found HERE).

    The solution in Windows 8 is to go to:

    Control Panel –> Power Options –> Choose what the power button does

    In here click on “Change settings that are currently unavailable” where you should see something like this:

    enter image description here

    Uncheck the option that says “Turn on fast startup”.
    You also need to disable hibernation. You can do this with this command (you need to be in a console with admin rights):

    powercfg.exe -h off
    

    This should remove the hibernation file and enable partition to be mounted in Ubuntu.

A demonstration video is now available on this issue. We can install Ubuntu 12.04.2 (64 bit versions) onwards with SecureBoot enabled. But we need to disable the SecureBoot after the Boot Repair step.

Wubi doesn’t work on newer computers with UEFI (see bug report http://pad.lv/694242). If you bought a computer with Windows 8 preinstalled it is almost certainly using UEFI (since this is required for Secure boot and all OEM Windows 8 computers are supposed to be secure boot).

Wubi uses Grub4dos to locate the Grub2 wubildr file. There is no support for GPT disks built into Grub4dos (and UEFI uses GPT disks unless it’s booting in hybrid mode). In addition, with Secure Boot, it’s not possible just to add new boot entries as before.

So, what you need to do is a normal dual boot. If you have secure boot (likely) then you need the 64 bit Ubuntu.

You can do the same as you could in Windows 7, although I’m not sure I’d recommend it using the graphical boot menu (reason in the end).

Some things first:

The usual setup for people who have dual boot configurations with Linux being one of the OSs that the machine has installed is to have a Linux bootloader by default, and there add an entry for the Windows OS. What that does is to load the Linux bootloader and if you want to load Windows it chainloads into the Windows bootloader which then boots Windows.

Since usually there’s only one Windows installed the menu selector of the Windows bootloader never appears giving the impression that the entry you added in the Linux bootloader actually loads Windows.

The opposite is possible too, although not common among Linux users. For instance, my main bootloader is the one from Windows which then chainloads into a Linux one to boot Linux; I have configured the Linux one to be mostly invisible and load right away though.

How to add a Linux entry in the Windows bootloader:

It really depends on what you install first and what later, I’m sure there are some guides around the internet to explain a detailed procedure on how to setup a dual+ boot environment. So I’ll just go through 2 different setups:

When you install Windows first: In this case when you’re installing your Linux distribution, if it allows you to install the bootloader in a partition directly instead of in the MBR of the hard drive do so. After restart you’ll find that you’re booting Windows just like Linux was not installed at all, after that follow the scenario in which Linux was installed first described below.

If you can only install the bootloader in the MBR of the hard drive after the reboot you’ll see a Linux bootloader (Syslinux, GRUB, you name it), choose the Windows entry there and boot into Windows.

Now, I like to use EasyBCD (free for personal usage) to deal with the Windows bootloader, but anything that I do with it can be accomplished without with the proper bcdboot, bcdedit, etc. commands.

  1. Open EasyBCD and go to the “Add New Entry” section and the
    “Linux/BSD” tab.
  2. Select the bootloader you have for your Linux distribution. In case
    of GRUB2 there’s an autoselect mode which will select the
    appropriate partition for you, for Syslinux for example you have to
    compulsory select the partition where it is installed.
  3. Name the entry, the name you put there is the one that will appear
    in the Windows bootloader.
  4. Select the partition where your bootloader resides or autoselect if
    that option is possible. In the end you should end up with something
    like this:

    enter image description here

  5. Click in “Add entry” and you’ll receive the result in the bottom
    left part of the program:

    enter image description here

  6. Now you have to restore the Windows bootloader as the default one,
    for that go to the “BCD Deployment” section, there select to write
    the Vista/7 bootloader in the MBR (which by the way is the same as
    for Windows 8):

    enter image description here

  7. After that you’re all set, you’ll receive a similar confirmation as
    before. When booting up you’ll see the boot menu prompting you to
    select one of them:

    enter image description here

When you install Linux first: In this case you don’t have to restore the MBR (Master Boot Record, tells what to execute next grosso modo) as Windows installation will overwrite any previous value there.

NOTE: with UEFI and GPT disks this may be different though, but I have
no way of trying it out.

Why I’m not sure I’d recommend doing this using the new graphical boot menu in Windows 8:

Essentially because the way it works is different than with the textual menu (default for Windows 7). In Windows 7 (or Vista) you’re first presented with the boot menu and then it starts to load whatever you choose to, in the new graphical menu it first loads some stuff (= takes time) and then presents you with the boot menu. If you don’t select to load Windows 8, it reboots the machine and starts to load whatever you selected which in this case is the Linux bootloader.

I find waiting to load some stuff just to discard it and reboot unnecessary if I just want to boot another OS; but it’s my personal opinion on the matter, there’s no problem whatsoever by loading Linux, or any other OS in this manner.

Anyway, there are different ways to use the textual boot menu instead in Windows 8, if you’re interested check this answer out.

Source from : Xandy

Related Solutions

Extract file from docker image?

You can extract files from an image with the following commands: docker create $image # returns container ID docker cp $container_id:$source_path $destination_path docker rm $container_id According to the docker create documentation, this doesn't run the...

Transfer files using scp: permission denied

Your commands are trying to put the new Document to the root (/) of your machine. What you want to do is to transfer them to your home directory (since you have no permissions to write to /). If path to your home is something like /home/erez try the following:...

What’s the purpose of DH Parameters?

What exactly is the purpose of these DH Parameters? These parameters define how OpenSSL performs the Diffie-Hellman (DH) key-exchange. As you stated correctly they include a field prime p and a generator g. The purpose of the availability to customize these...

How to rsync multiple source folders

You can pass multiple source arguments. rsync -a /etc/fstab /home/user/download bkp This creates bkp/fstab and bkp/download, like the separate commands you gave. It may be desirable to preserve the source structure instead. To do this, use / as the source and...

Benefits of Structured Logging vs basic logging

There are two fundamental advances with the structured approach that can't be emulated using text logs without (sometimes extreme levels of) additional effort. Event Types When you write two events with log4net like: log.Debug("Disk quota {0} exceeded by user...

Interfaces vs Types in TypeScript

2019 Update The current answers and the official documentation are outdated. And for those new to TypeScript, the terminology used isn't clear without examples. Below is a list of up-to-date differences. 1. Objects / Functions Both can be used to describe the...

Get total as you type with added column (append) using jQuery

One issue if that the newly-added column id's are missing the id number. If you look at the id, it only shows "price-", when it should probably be "price-2-1", since the original ones are "price-1", and the original ones should probably be something like...

Determining if a file is a hard link or symbolic link?

Jim's answer explains how to test for a symlink: by using test's -L test. But testing for a "hard link" is, well, strictly speaking not what you want. Hard links work because of how Unix handles files: each file is represented by a single inode. Then a single...

How to restrict a Google search to results of a specific language?

You can do that using the advanced search options: http://www.googleguide.com/sharpening_queries.html I also found this, which might work for you: http://www.searchenginejournal.com/how-to-see-google-search-results-for-other-locations/25203/ Just wanted to add...

Random map generation

Among the many other related questions on the site, there's an often linked article for map generation: Polygonal Map Generation for Games you can glean some good strategies from that article, but it can't really be used as is. While not a tutorial, there's an...

How to prettyprint a JSON file?

The json module already implements some basic pretty printing in the dump and dumps functions, with the indent parameter that specifies how many spaces to indent by: >>> import json >>> >>> your_json = '["foo", {"bar":["baz", null,...

How can I avoid the battery charging when connected via USB?

I have an Android 4.0.3 phone without root access so can't test any of this but let me point you to /sys/class/power_supply/battery/ which gives some info/control over charging issues. In particular there is charging_enabled which gives the current state (0 not...

How to transform given dataset in python? [closed]

From your expected result, it appears that each "group" is based on contiguous id values. For this, you can use the compare-cumsum-groupby pattern, and then use agg to get the min and max values. # Sample data. df = pd.DataFrame( {'id': [1, 2, 2, 2, 2, 2, 1, 1,...

Output of the following C++ Program [closed]

It works exactly like this non-recursive translation: int func_0() { return 2; } int func_1() { return 3; } int func_2() { return func_1() + func_0(); } // Returns 3 + 2 = 5 int func_3() { return func_2() + func_1(); } // Returns 5 + 3 = 8 int func_4() { return...

Making a circle out of . (periods) [closed]

Here's the maths and even an example program in C: http://pixwiki.bafsoft.com/mags/5/articles/circle/sincos.htm (link no longer exists). And position: absolute, left and top will let you draw: http://www.w3.org/TR/CSS2/visuren.html#choose-position Any further...

Should I use a code converter (Python to C++)?

Generally it's an awful way to write code, and does not guarantee that it will be any faster. Things which are simple and fast in one language can be complex and slow in another. You're better off either learning how to write fast Python code or learning C++...

tkinter: cannot concatenate ‘str’ and ‘float’ objects

This one line is more than enough to cause the problem: text="რეგულარი >> "+2.23+ 'GEL' 2.23 is a floating-point value; 'GEL' is a string. What does it mean to add an arithmetic value and a string of letters? If you want the string label 'რეგულარი...