Update: This work is superseded by my 'isorespin.sh' script which can respin an official ISO suitable for use on Intel Atom devices.
Although the earlier versions of my 'isorespin.sh' script provided flexibility in creating an ISO by allowing the addition of packages, if a package was only accessible from a specific repository then it could not be added when respinning an ISO. To provide this functionality I've re-written the script to include both adding repositories to the ISO and adding packages that are dependent on such repositories. Unfortunately the flags I had previously used to control the various options required changing to accommodate this functionality. Additionally an issue I've encountered several times is not having sufficient space to respin an ISO so using a temporary directory such as an external disk or USB for the temporary work files was needed. Therefore I've added a new flag '-w' to specify a 'work directory' which should resolve most instances when space becomes an issue.
With the new flags the invocation whilst providing flexibility can become somewhat complex. Coupled with this is some users are not comfortable using a command line interface so I decided to add a graphical user interface. It is rather simplistic but it takes you through the options and makes argument selections somewhat easier.
The examples below illustrate the various options through scenarios and provide a basic tutorial to the new version of the script.
The first scenario starts by respinning an Ubuntu 17.04 ISO and upgrades the kernel, add a repository, packages and files (scripts), downloads packages required by the scripts, and creates an ISO with persistence.The script was run on a mini PC which just had the required storage with only 11GB free on the root file system. All the local packages and files to be installed on the ISO had been previously downloaded and copied to the 'Downloads' directory. Also to prevent the file manager opening a window each time the script mounts a temporary file system I ran the command 'gsettings set org.gnome.desktop.media-handling automount-open false' first. Finally I had 'installed' the script by copying it to '/usr/local/bin' so that it was available regardless of the current directory.
When the script is started without any parameters it checks to see if it can run the GUI which then starts with the main selection menu where all required options are to be selected.
For each option (i.e. flag) selected, a sub-menu will appear to allow the choice (i.e. argument) to be entered. When selecting the ISO to be respun a file manager styled window will be presented but only files ending with a '.iso' suffix will be displayed.
When the kernel upgrade option is chosen the next choice is either to upgrade to the latest mainline version or a further window will open allowing a specific version to be typed in (which can be any of the Ubuntu Kernel Team kernel builds located at http://kernel.ubuntu.com/~kernel-ppa/mainline and is the name of the directory or folder name without the trailing '/' as in '--kernel v4.11-rc7' noting that earlier kernels will probably not work well if at all).
The new 'repo' option allows a repository to be added in either the form of a ppa or as a line to be added to '/etc/apt/sources.list'.
When any option requiring a text entry is added a further option is displayed to ask whether a further entry needs to be added.
Packages can be added as text entries either singularly or as multiples.
Local packages are added using the file manager which only displays '.deb' files.
Any packages that are specified for download will be placed in '/usr/src'. This can be a useful for example when later installing the ISO to a 32-bit bootloader device as by downloading the required GRUB packages they are readily available without the need for an internet connection during a manual installation.
There are no restrictions on the type of files added to the ISO and they will be stored under '/usr/local/bin'.
Selecting persistence will automatically pre-select the rEFInd bootmanager and the size of the persistence partition can be defined using the slider which with the GUI limits the size between 128MB and 2048MB.
Once all the options have been entered a confirmation screen will be displayed which shows the options as they would have been entered if the script had been manually run.
Then as the script runs its progress is displayed both in the terminal and on the screen.
When the script finishes a notification message is displayed.
A log file is produced while running the script which contains details of what was used in producing the ISO.
The script can still be run manually as before but note the renamed flags.
In the second scenario an attempt is made to run the script manually however there is insufficient space on the hard drive.
By specifying a work directory the script can run on external devices instead of locally.
In this example a USB is used.
Once an ISO has been respun it can be written to a USB using the 'dd' command.
Booting the ISO from the first scenario on an Intel Compute Stick shows how useful installing a local package can be. In this example the local package was 'rtl8723bs_4.11.0-041100_amd64.deb' which is a package I created to install an externally compiled wifi and bluetooth module together with firmware. Wifi automatically becomes available after booting (although in the example the device was also connected to the internet using an external USB adapter). The package 'inxi' was installed as part of the ISO respin and shows the kernel is now v4.11 and 'df' shows the persistence partition mounted as '/media/ubuntu/casper-rw'.
The package 'gnome-encfs-manager' which could only be installed once the repository 'ppa:gencfsm/ppa' had been added can now be run from the ISO as can be the additional files etc.
The
Any issues or improvement suggestions are welcome.
Please donate if you find the script useful using the following link http://goo.gl/nXWSGf as everything helps with development costs.
51 comments:
Very nice. Good work
Some suggestions
* install dependencies
e.g xorriso
some input boxes require more info (provide example of what the user need to input)
like the specific kernel version
(v4.12-rc1)
mine script failed because i not input the "v" first time for specific kernel version
For 8GB USB key,
./isorespin.sh -i kubuntu-17.04-desktop-amd64.iso -l "rtl8723bs_4.12.0-041200rc1_amd64.deb google-chrome-stable_current_amd64.deb" -u -p "ssh openssh-server inxi" -s 5GB -b "rEFInd"
Work fine for me, Alltocube iwork1X
Problem batterie, audio on HP, HDMI well, and tactile.
Can anymone help
I respin debian live lxde
At first boot i have this message:
Error:no suitable video mode found
Booting in blind mode
And nothing happens.
No problem batterie but > 8W of power
Hi there - no matter what I do, with this new respin method - when trying to install to a lenovo 100s 11inch atom ideapad, I get the installer crashed when trying to write the grub bootloader. The previous ISO you created was fine - I just cant get ubuntu to install, Ive tried regular ubuntu, mint mate, ubuntu gnome, they all suffer from the same issue?
Hope you can advise?
Hi. For proper grub installation you need active internet connection during install (via usb wifi-card or broadband)
On what device (manufacturer, make and model number)?
Thanks. I'll look at including your suggestions in a new version.
You could also try the route indicated in the example which is to download the GRUB binaries as part of the respin including my 'linuxium-install-bootloader.sh' which can be used as a guide in installing GRUB immediately after the ISO installation process has finished.
Thanks. I had never thought of removing packages as part of respinning given the potential effect on integrity and impact on installation however I will do some testing. I previously written about converting a desktop to a server so I would recommend this approach in creating your wordpress server at this stage.
Thanks for the great work.
I'm trying to install Ubuntu on a Lenovo IdeaPad Miix 310.
But no success till now.
Can get to the Ubuntu logo but then the screen goes black.
I have some doubts about isorespin.sh
Is running ./isorespin.sh -i enough to fix the distro? or do I need to add any thing else?
Thanks
Excellent work on this...
A small question if I may, do you think something like this could work on the minimal ubuntu isos located here ( https://help.ubuntu.com/community/Installation/MinimalCD ) or would they be missing key things needed to make this work. The advantage of this is that this iso allows you to download packages to install many flavours of ubunutu and would give someone one iso to rule them all :)
Ok, so this is how far I got.
Ubuntu 14.04.5 kernel 4.11 working video, wifi, touchscreen. Not working SDcard, sound, bluetooth, battery indicator.
Tried update to 16.04 but, get black screen after boot.
16.04 and 17 with kernel 4.11 and 4.12 black screen.
I can get audio on other distros (kali), but no video(distorced picture,shadows,pixels stay on)
Is it possible to manually path the video?
Try adding 'nomodeset' as a boot parameter by editing GRUB when booting and see if this gets you video.
Interestingly you can use my 'isorespin.sh' script on all the Ubuntu flavoured desktops and you can download packages (both directly, from additionally added repos and as local packages) and create the perfect 'flavoured' ISO. You can then actually boot multiple ISOs (e.g. all your different perfect flavoured ISOs) from the same USB as I have shown elsewhere.
The minimal Ubuntu ISOs you mention cannot be used with the current script as they are in the format of 'installation only' ISOs rather than 'live images'.
If there is something specific you are interested in then please make a suggestion or is it as simple as I want to use one of the minimal ISOs with a different kernel?
Nope not helping. Tried adding after and before quiet boot.
If I add 'nomodeset' on the working iso I get the same problem as the others all fuzzy text, almost like strange scanlines.
The working 14.04 iso is also fuzzy until 'loading essential drivers' line shows on screen.
Also tried 14.04 Gnome, this goes nice until the logo then black (i guess goes black when desktop is loaded).
What else can I try?
There hare some .iso's I can boot into just with fuzzy video, the rest seems to be working. Can I load the video driver used in Ubuntu 14.04.5 ?
I've tried the new GUI isorespin.sh twice, once with lots of options, one with just replacing the kernel. I get an error:
Invalid loader file!
Error: Not found while loading vmlinuz.efi
This was with Ubuntu GNOME 17.04. Just in case I have a corrupted iso I'll try it with another flavor. The machine is an HP x2 Detachable 10-p101nr
According to the Lenovo forums it may be a BIOS issue - see https://forums.lenovo.com/t5/Linux-Discussion/lenovo-miix-310-graphics-problem-after-booting-linux/m-p/3482416 and https://forums.lenovo.com/t5/Linux-Discussion/ubuntu-for-Miix-310-10ICR-Tablet/m-p/3385125
That is a bootloader or more correctly a boot manager error message shown when there is a miss-match between rEFInd and 32-bit/64-bit booting.
Are there any BIOS settings that control 32-bit/64-bit booting?
Been there before thanks.
Ive made 17.04 kernel v4.11.2 to boot.
Working video, sound, touchscreen.
No working, BT, wifi, brightness (keyboard shortcut showing OSD but no control), SDcard.
Used your RTL8723BS wifi package for v4.11 on 14.04 v4.11 and works great but I cant install it on 17.04 v4.11.2 !!
Should be possible to get everything to work at the same time, right ?
Have you tried 17.04 with v4.12-rc2 and my latest wifi package as wifi for v4.11.n requires compilation and re-packaging which was never my intention.
Thanks for getting back to me. I looked through the BIOS settings and I am not seeing anything vaguely like that.
Then can you post your various 'isorespin.log' files and the corresponding errors so I can try and work out what is happening?
I found a workaround and I think I know what is happening now. First, your old isorespin-v5.01.sh works perfectly. It uses grub. The issue is exclusive to rEFInd. It has to be an issue with either how you're writing the bootloader to the image or which image is being written. For me the good news is the rebuild of my system is moving forward.
Oh, and I added a little bit to your virtual pushke. It's not much but hopefully next time will be more. I do appreciate your work.
I've had a look and I can't see any problem with the script and I haven't been able to replicate through testing.
Both the old v5.01 version and new v6.01 version use GRUB and rEFInd with the only difference being the GUI front-end.
Can you let me know what invocation was used for the script and the corresponding error so I can investigate further.
Many thanks for the donation. It all goes towards help cover the development and hosting costs.
When I ran the GUI version I just ran ./isorespin.sh and answered questions. For the first try I did replace the kernel with v4.11.2 and added some packages. I did not select rEFInd but that was the choice I got. On the second go I didn add packages.
With 5.01 I kept it plain vanilla:
isorespin-5.01.sh -i
Sadly once I got it going I deleted the log. Stupid of me. Sorry.
Hi thanks for the replies. So Ive tried again this time with ubuntu 17.04 and kernel 4.12rc2 and when I boot I have no keyboard, trackpad or wifi drivers during install, it was fine in the past with 16.04. Also could you make a page with a list to all the downloads please? Finding it very difficult to find the required files on your site? More than happy to help with hosting if you need some extra space by the way - please feel free to ping me :) Cheers Andy
Adding a notify option so IM emailed :)
Edit.
Hello,i have an ASUS T100HA
and installed Ubuntu 17.04(official)
so,T100HA does not recognize wifi in ubuntu.
What can we do with isorespin.sh?
Hi
I'm trying to install some (any) flavor of linux on Voyo V2.
The respinning portion works fine, but I cannot seem to install any of the respun ISOs.
For Ubuntu Desktop 16.04, I'm getting:
"(initramfs) unable to find a medi"um containing a live file system."
For latest Debian Live, the live portion works ok (booting into XFC), but when I try to install, I'm getting:
"ERROR: 'kexec' is not a valid plugin. Check and try again."
Dd you gyus have any suggestion where to go from here?
I'm actually in the middle compiling a list of downloads etc and will post it once finished.
Remind me again as to what wifi chip the ASUS T100HA uses?
I've not got a Voyo V2 so I'm limited in what I can suggest. However when you install are you connected to the internet as that is required for Ubuntu on 32-bit bootloader devices?
Could you please provide the ISOs directly? I find the respin method more complicated and it has crashed twice. I believe it was much more convenient in the past, when you provided the ISOs. Unfortunately, I did not believe that you would erase them and did not keep a copy.
Thanks for your great work!
Thanks for your reply.
Indeed I was not aware of this requirement, when connected via ethernet, the Ubuntu Live started fine and I was able to launch the installer.
It's still going strong at this moment, so keeping my fingers crossed.
Thank you!
Ubuntu got installed!
Next challenge - it won't shut down or restart. After shutdown command with appropriate parameters, there's only black screen with ocasional unrelated warning message.
I do have one question. How hard would it be to make the script 32bit compatible. One of the tablets i have is a nextbook with a baytrail that came with windows 8 stock though ive since upgraded it to 10 but is a 32 bit only device. trying to boot on 64 bit disks is obviously a no go and when i try using a 32bit mint iso with the script it throws a this distro is not 64 bit. Any help would be appreciated. thanks!
The ISOs are superseded which is why they are removed. They are also not required when you can respin your own with a lot more functionality added than any standard or customized ISO available for download.
Just respin a 64-bit Mint ISO and it will automatically add a 32-bit bootloader allowing you to boot on your device.
System: Host: K600IW Kernel: 4.11.1-041101-generic x86_64 (64 bit)
Console: tty 0 Distro: Ubuntu 17.04
Machine: Device: desktop System: KUBO by mitsai product: K600IW
Mobo: AMI model: Cherry Trail CR
UEFI: American Megatrends v: T09015 date: 08/04/2016
CPU: Quad core Intel Atom x5-Z8300 (-MCP-) cache: 1024 KB
clock speeds: max: 1840 MHz 1: 479 MHz 2: 558 MHz
3: 976 MHz 4: 1286 MHz
Graphics: Card: Intel Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCI Configuration Registers
Display Server: X.org 1.19.3 driver: intel
tty size: 68x28 Advanced Data: N/A out of X
Audio: Card Intel HDMI/DP LPE Audio driver: HdmiLpeAudio
Sound: ALSA v: k4.11.1-041101-generic
Network: Card: Intel Wireless 3165 driver: iwlwifi
IF: wlp1s0 state:
Drives: HDD Total Size: 175.5GB (75.9% used)
ID-1: /dev/mmcblk0 model: N/A size: 31.0GB
ID-2: USB /dev/sda model: USB_SD_Reader size: 15.5GB
ID-3: USB /dev/sdb model: Expansion size: 160.0GB
ID-1: / size: 15G used: 6.1G (46%) fs: ext4 dev: /dev/sda1
RAID: No RAID devices: /proc/mdstat, md_mod kernel module present
Sensors: System Temperatures: cpu: 42.0C mobo: N/A
Fan Speeds (in rpm): cpu: N/A
Info: Processes: 215 Uptime: 23:31 Memory: 1065.7/1927.3MB
Init: systemd Client: Shell (bash) inxi: 2.3.8
Try my latest script version(v6.02.0) without the 'rEFInd' option.
Comments with advertising links are not allowed.
I want that do
what i would like its Ubuntu 17.04 without de GUI desktop
Then you would need to respin the ISO and purge the desktop packages. Be careful though as it might then wipe out the network commands you are familiar with meaning you would have to brush up on manually configuring networks.
Post a Comment
All comments now moderated so that spam can be deleted.