Hi, I have a custom linux system that runs off a FAT32 usb flash disk. I use syslinux to make it bootable and load the kernel. I'm trying to boot now from a SSD SATA disk (500GB) but it's not working and I can't figure out why. BIOS show that no bootable disk were found. What I already tried (linux fdisk): 1- Creating a new DOS partition table on the SSD, a FAT32 (type b), and formating with mkfs.vfat -F32 and then calling syslinux /dev/sda1 -> No boot 2- Creating the FAT32 directly on /dev/sda and calling syslinux -f /dev/sda1 -> No boot too 3- Creating a smaller FAT32 partition (16GB) -> Did not work too The only way I could get it to work was cloning a working usb flash (4GB) to the ssd, like this: dd if=/dev/sdb of=/dev/sda I'm using syslinux 4.05 (from Ubuntu 14.04 repository). fdisk -l /dev/sda : Disk /dev/sda: 500.1 GB, 500107862016 bytes 232 heads, 62 sectors/track, 67906 cylinders, total 976773168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x499f6446 Device Boot Start End Blocks Id System /dev/sda1 * 2048 62916607 31457280 b W95 FAT32 OBS: I tried to change the default 255/63 heads/sectors to 232/62 to make those multiples of the sector size. Anyone have any idea of what I am doing wrong? Thanks
> Hi, > > I have a custom linux system that runs off a FAT32 usb flash disk. I > use syslinux to make it bootable and load the kernel. > > I'm trying to boot now from a SSD SATA disk (500GB) but it's not > working and I can't figure out why. BIOS show that no bootable disk > were found. > > What I already tried (linux fdisk): > > 1- Creating a new DOS partition table on the SSD, a FAT32 (type b), > and formating with mkfs.vfat -F32 and then calling syslinux /dev/sda1 > -> No boot > > 2- Creating the FAT32 directly on /dev/sda and calling syslinux -f > /dev/sda1 -> No boot too > > 3- Creating a smaller FAT32 partition (16GB) -> Did not work too > > The only way I could get it to work was cloning a working usb flash > (4GB) to the ssd, like this: > > dd if=/dev/sdb of=/dev/sda > > > I'm using syslinux 4.05 (from Ubuntu 14.04 repository). > > fdisk -l /dev/sda : > > Disk /dev/sda: 500.1 GB, 500107862016 bytes > 232 heads, 62 sectors/track, 67906 cylinders, total 976773168 sectors > Units = sectors of 1 * 512 = 512 bytes > Sector size (logical/physical): 512 bytes / 4096 bytes > I/O size (minimum/optimal): 4096 bytes / 4096 bytes > Disk identifier: 0x499f6446 > > Device Boot Start End Blocks Id System > /dev/sda1 * 2048 62916607 31457280 b W95 FAT32 > > OBS: I tried to change the default 255/63 heads/sectors to 232/62 to > make those multiples of the sector size. > > > > Anyone have any idea of what I am doing wrong? > > Thanks_ Have you dd'ed mbr.bin to the SSD? http://www.syslinux.org/wiki/index.php/Mbr _ Is the partition marked as "bootable" (aka "active" flag) in fdisk? _ Have you tried using the "-i" parameter when executing the syslinux command to install SYSLINUX? http://www.syslinux.org/wiki/index.php/Install Regards, Ady.> _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux >
Yes, I tried to dd the mbr.bin and use both --install and --stupid parameters. The FAT32 partition is bootable. Here is what I did: $ sudo fdisk /dev/sda -l Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x00000000 Disk /dev/sda doesn't contain a valid partition table $ sudo dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr.bin of=/dev/sda 1+0 records in 1+0 records out 440 bytes (440 B) copied, 0,0278105 s, 15,8 kB/s $ sudo fdisk /dev/sda Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x4492593f. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) The device presents a logical sector size that is smaller than the physical sector size. Aligning to a physical sector (or optimal I/O) size boundary is recommended, or performance may be impacted. Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-976773167, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-976773167, default 976773167): Using default value 976773167 Command (m for help): t Selected partition 1 Hex code (type L to list codes): b Changed system type of partition 1 to b (W95 FAT32) Command (m for help): a Partition number (1-4): 1 Command (m for help): p Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x4492593f Device Boot Start End Blocks Id System /dev/sda1 * 2048 976773167 488385560 b W95 FAT32 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: If you have created or modified any DOS 6.x partitions, please see the fdisk manual page for additional information. Syncing disks. $ sudo mkfs.vfat -F32 /dev/sda1 mkfs.fat 3.0.26 (2014-03-07) *** here I mounted /dev/sda1, copyed kernel, initrd, syslinux.cfg and umounted *** $ sudo syslinux -i /dev/sda1 $ sync $ reboot After rebooting I get from bios: "No bootable device -- insert boot disk and press any key" The BIOS has UFI, but I'm not using it (it's disabled). But the strange is: if I do exactly the same procedure on a flash disk (4GB) and then a dd from the flash disk to the sata sdd, then the sata SSD boots. The physical sector size of the sata ssd is 4k, but the logical is 512. Could this be the problem? Thanks
> Yes, I tried to dd the mbr.bin and use both --install and --stupid parameters. > > The FAT32 partition is bootable. > > > Here is what I did: > > $ sudo fdisk /dev/sda -l > > Disk /dev/sda: 500.1 GB, 500107862016 bytes > 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors > Units = sectors of 1 * 512 = 512 bytes > Sector size (logical/physical): 512 bytes / 4096 bytes > I/O size (minimum/optimal): 4096 bytes / 4096 bytes > Disk identifier: 0x00000000 > > Disk /dev/sda doesn't contain a valid partition table > > > $ sudo dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr.bin of=/dev/sda > 1+0 records in > 1+0 records out > 440 bytes (440 B) copied, 0,0278105 s, 15,8 kB/s > > $ sudo fdisk /dev/sda > Device contains neither a valid DOS partition table, nor Sun, SGI or > OSF disklabel > Building a new DOS disklabel with disk identifier 0x4492593f. > Changes will remain in memory only, until you decide to write them. > After that, of course, the previous content won't be recoverable. > > Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) > > The device presents a logical sector size that is smaller than > the physical sector size. Aligning to a physical sector (or optimal > I/O) size boundary is recommended, or performance may be impacted. > > Command (m for help): n > Partition type: > p primary (0 primary, 0 extended, 4 free) > e extended > Select (default p): p > Partition number (1-4, default 1): 1 > First sector (2048-976773167, default 2048): > Using default value 2048 > Last sector, +sectors or +size{K,M,G} (2048-976773167, default 976773167): > Using default value 976773167 > > Command (m for help): t > Selected partition 1 > Hex code (type L to list codes): b > Changed system type of partition 1 to b (W95 FAT32) > > Command (m for help): a > Partition number (1-4): 1 > > Command (m for help): p > > Disk /dev/sda: 500.1 GB, 500107862016 bytes > 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors > Units = sectors of 1 * 512 = 512 bytes > Sector size (logical/physical): 512 bytes / 4096 bytes > I/O size (minimum/optimal): 4096 bytes / 4096 bytes > Disk identifier: 0x4492593f > > Device Boot Start End Blocks Id System > /dev/sda1 * 2048 976773167 488385560 b W95 FAT32 > > Command (m for help): w > The partition table has been altered! > > Calling ioctl() to re-read partition table. > > WARNING: If you have created or modified any DOS 6.x > partitions, please see the fdisk manual page for additional > information. > Syncing disks. > > $ sudo mkfs.vfat -F32 /dev/sda1 > mkfs.fat 3.0.26 (2014-03-07) > > *** here I mounted /dev/sda1, copyed kernel, initrd, syslinux.cfg and > umounted *** > > $ sudo syslinux -i /dev/sda1 > > $ sync > $ reboot > > After rebooting I get from bios: "No bootable device -- insert boot > disk and press any key" > > The BIOS has UFI, but I'm not using it (it's disabled). > > But the strange is: if I do exactly the same procedure on a flash > disk (4GB) and then a dd from the flash disk to the sata sdd, then the > sata SSD boots. > > > The physical sector size of the sata ssd is 4k, but the logical is > 512. Could this be the problem? > > ThanksYes, the 4KB sector size is most probably the problem. Some users are able to workaround the issue by connecting the drive in different manners (e.g. eSATA vs. SATA vs. USB, through external cases...) or by using loop devices / losetup. Some users have luck with one connection, some users succeed with a different connection type, and others manage to get it work with mounting loop devices, or by dd'ing images. Your experience might vary (perhaps someone else wants to provide more details, or share experiences). The particular device, the particular firmware ("BIOS"), the connection type... All these (and more) can have an impact. Note that syslinux.efi should have no problem with a sector size of 4KB. Regards, Ady.> _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux >