critical Slackware USB flash drive boot installer issue
Why does the Slackware USB flash drive boot installer creation process involve making a damn Windows partition to put the installer on?!
I made a new USB flash drive installer, and when the BIOS of the system I tried it on did not detect it but started starting Windows, I took the flash drive out, but Windows must have tried to access the flash drive's Windows partition--then it was ruined! Slackware is the greatest system for development purposes (even has more than any default BSD install, AFAIK, though perhaps BSD is still more stable) and that is great, but one would not expect such a system to use a Windows partition on its installer, and I have a serious problem with that! |
The Slackware USB flash drive creator makes a Windows partition because BIOSes can't boot from file systems such as e.g. ext4.
If your BIOS didn't boot from the flash drive, then either: 1) you've set the booting process wrong in the BIOS; 2) the flash drive didn't prepare correctly and is not bootable; 3) the BIOS doesn't have an option to boot from USB flash drives (usually in older computers). Quote:
You could tell us how you prepared your Slackware install flash drive. |
It's trivial to use another filesystem type that syslinux supports for the usb drive installer. I use ext2, for instance. This is no critical issue.
Are you sure you have your usb drive first in the boot device list, have syslinux installed on it, and the boot partition active? |
Quote:
To the original question, I never had to create a Windows filesystem when using the USB installer, all I ever do is writing the usbboot.img to the USB device using cat or dd. I also can't see any instructions to create a Windows partition in the USB README file? Please elaborate where you did get those instructions and what exactly have you done, including why you think that the Windows installation has ruined your USB device. |
Quote:
To answer another question asked above: the system I was trying this on does not even boot from USB--I selected something I thought might have been the USB flash drive after I plugged it in before turning on the computer on (since some BIOSes detect stuff plugged in, or have options that were updated but not documented) but it was the hard drive. This was not a question about the simple process of installing anything, which I have decades of experience with. The flash drive was prepared correctly, because I have done this before, and the commands finished fine. Coreboot is an example of a BIOS that can be compiled to boot from ext, if Coreboot even does not normally have an option or module to do that by default, but AFAIK it is as TobiSGD says--BIOS looks at a MBR to boot: if you have ever done fdisk on a new USB flash drive, or partitioned one like a new one, they have a little space at the beginning before the filesystem starts. I do not recall how it was with floppy discs; they might have worked similarly, though I do not recall if I ever did fdisk on one. |
Try using the usbimg2disk script:
http://slackware.mirrors.tds.net/pub...xe-installers/ |
Quote:
|
I think that the labels from fdisk regarding the filesystems used are simply wrong. While fdisk reports this on my USB device with the installer copied to it
Code:
Disk /dev/sdd: 16.0 GB, 16039018496 bytes Code:
Model: Corsair VoyagerGT (scsi) Code:
[431975.070298] usb 6-4: new high-speed USB device number 4 using ehci-pci |
Quote:
Quote:
|
Quote:
Quote:
|
Quote:
|
According to the rough notes I made at the time:
I had the Slackware tree i ~/temp, then ran (as root): Code:
usbimg2disk -f -s /home/brian/temp/Slackware-14.0 -o /dev/sdb |
Quote:
|
Quote:
|
Quote:
|
Quote:
Code:
echo "# Purpose #1: to use the content of Slackware's usbboot.img and" |
I am not sure any the criticism is really justified. As far as partitions go its the norm to include a partition table on larger USB devices. As to the type of partition that is little more than a couple of magic numbers at some specific byte offsets.
They have no effect on what you put in the partition, they might be viewed as simply informational, as far you are concerned. Some things like BIOS,UEFI and other software are looking for specific values, its easiest to just use them, and there is no real down side. As far as the VFAT filesystem goes, there again its a very common choice for removable USB media. The installer works fine using that filesystem as a source AND you can plug that same media into a Windows, Mac, other Linux box, and just about anything else with a USB port and read it as well; which may be helpful if you need to review one of the docs. As others have mentioned this is also the filesystem type you can count on UEFI being able to boot. A DOS or Windows partition type, with a VFAT filesystem is the way this should be done. |
The word "purpose" means what it intends to do, and not how things should be done. Did I understand it wrong? Maybe I lost my English skills during my travaling worldwide. Now I go on to another traval. Bye!
|
Quote:
|
Another reason I am critical of the FAT32 usage is because there is a process described to make a boot flash drive but keep the files you had already there, which can lead to unexpected inadequacies. For example, say one makes some scripts to do things after upgrading, or even to do the upgrade process (and then hopefully check it worked), or even that one will copy somewhere like /usr/local/bin, or something like ~/sh after installing. If you put the scripts on FAT32, they now have DOS newlines and will no longer run properly even when copied back onto EXT4. My point is, a POSIX-based OS installer should primarily run on a filesystem of its own, and only describe other partition usage to help people switch away from some other system. One does not need FAT32 on a USB flash drive by default, any more than for on your hard drive to boot from Loadlin or whatever may be used now.
|
It uses a fat partition because that is the *most bootable* thing there is.
"finding executable code in the MBR" -should be "finding executable code in the device". Why? Because a CD does not have an MBR -but gets identified as being executable code. When the BIOS sees a device it tries to figure out if there is executable code there -executable code of the proper type(architecture). Different BIOS's use different methods to make this determination and they are all based on heuristics. As mentioned, not every bootable device has an MBR or partition table. Floppies have no MBR, they have executable code beginning at the very beginning of the device. CD's have 32k which is *empty* right at the start of the device. Hard disks of course have 446 bytes of executable code at the start, followed by 64 bytes of partition table. A Zip disk also has an MBR(446+64 bytes), but for it to be found 'bootable' the partition table must have the first partition as *partition 4* and it should be marked 'bootable'. Flash devices can either have an MBR or be formatted as a single whole-disk drive, or they may look like a floppy -executable code with no partition table. BIOS's which can boot from USB devices distinguish between one or more drive types -floppy, hard-disk or zip drive. Incidentally, after the initial empty 32K of a CD, the executable boot code appears to be a 'large floppy', so a USB CD drive can boot also. It is even possible to make a drive look like more than one type of device. The 'bootfat' project produces images for booting from USB devices and can make a single device look like a floppy, a ZIP-drive and a hard disk -all at the same time. This makes such an MBR the most bootable thing there is. Then, there is the isohybrid tool which is part of syslinux, which makes an iso image also look like a hard disk. This means you can burn it to a CD and it looks like a bootable CD, or you can 'dd' the same image to a hard-disk or flash drive and it appears to be a partitioned device. There have been efforts to something similar with bootable images using grub. Something that looks like a floppy on a FAT filesystem is the most universally-bootable thing there is. This is why the syslinux bootloader is the most successful at booting many types of machines. If the OP is willing to accept a system/CD/whatever being less bootable *than possible*, then using another alternative will still produce the desired effect -but less often. |
Well, I just put in an ISO image what I need using cdrecord, then run isohybrid on it, et voilą ;) No need to compute image size nor worry about making a filesystem, the image is usable to make an usb installer, with or without packages. You can do that with dd on Linux of course, and "rufus" works well on Windows.
For the records, this is explained in /isolinux/README.TXT. All you have to do is choose the files and directories you want to exclude with -m or -x, and possibly customize the content using option -graft-points of cdrecord. Just a warning: preferably use software versions shipped in 14.1, I had isohybrid failing on some big ISO images in 14.0. |
Quote:
In fact, the modern Unix (BSD, etc.) filesystems, and EXT4, are usable on more types of systems than FAT32 is. So, I do not care what new BIOSes do--Unix and EXT4 should become standard in popularity, besides versatility (as it is). There is also Coreboot, and all one needs to do to prevent issues like I described is use that and/or make a boot partition in a USB flash drive, which should be a standard option, all documented as the first or second suggestion in a table of contents (such as in README_USB.TXT, though perhaps there should be a Howto), until modern Unix and GNU/Linux become standard. UPDATE: actually, now I agree with a post above that the problem is not critical. It was probably my UEFI BIOS that mounted the flash drive, and BIOS/UEFI/whatever booting things seems to be the way of things now, which I had not known except in the case of Coreboot, which I had never been able to try. Of course, if it searched for media's filesystems to mount, the same thing would happen. So, it is more of a modern BIOS problem, than a Slackware problem. I recall almost a decade or so ago, the same thing would have happened if I put in a 5.25" or 3.5" disc and took it out when the BIOS was doing I/O to it. So, my whole post was rather ridiculous, except later mentioning the other problems one could have booting from filesystems not designed for the OS, which is course still not critical. |
All times are GMT -5. The time now is 01:44 PM. |