12-28-2018 04:05 AM
Has anyone whose PSID was reverted to all zeros via the prior firmware update tried this one to see if it restores the proper PSID? I'm curious whether I'm going to have to RMA the drive to get a proper PSID again.
01-05-2019 02:11 PM
Is there a problem with the iso iamge : MX500_M3CR023_update.iso ?
First let me say that I have used the MX500_M3CR022_Update without problems a few months ago, so it is unlikely that I am failing to "do the right things".
I wrote the MX500_M3CR023_update.iso to an USB stick and verified that it now had a proper file system installed. I then boted that stick and ISOLINUX 4.05 loaded
but then issued the message "could not find kernel image: /boot/vmlinuz "
After checking briefly at https://www.syslinux.org/wiki/index.php?title=ISOLINUX,
I decided to try burning the image to a cdrom. Botting from that, exactly the same thing happens.
Mounting the cdrom (or I could have loop mounted the image) I see
/cdrom$ tree . ├── boot │ ├── corepure64.gz │ ├── isolinux │ │ ├── boot.cat │ │ ├── boot.msg │ │ ├── f2 │ │ ├── f3 │ │ ├── f4 │ │ ├── isolinux.bin │ │ └── isolinux.cfg │ └── vmlinuz64 └── EFI └── BOOT ├── BOOTX64.EFI ├── efiboot.img └── grub ├── fonts │ └── unicode.pf2 └── grub.cfg
so vmlinuz64 is present and perhaps (?) correct.
I am very rusty with isolinux, but I can probably poke around in the mounted image and maybe diagnose the problem. But am I the only one seeing this problem? It seems unlikely.
Could I have downloaded a corrupt image? Seems unlikely that it would boot into isolinux if so, but here is the checksum:
$ sha256sum MX500_M3CR023_update.zip 0dd5ac3c88971038b89bd917bd2e7d66ff91136afee918fc3cdd5c8cf6807fde MX500_M3CR023_update.zip
01-05-2019 02:15 PM
I have just posted about exactly the same problem. As a newcomer to the forum, I hadn't spotted your message before posting. So confirming. Yes the iso image seems to be corrupt. It might be possible to diagnose and fix the problem, but that would be a fair bit of work.
01-05-2019 11:33 PM
@Feature I was able to successfully remaster the ISO by replacing the "isolinux.bin" file and adding "ldlinux.c32". You may be able to create your own bootable USB drive without remastering (I have not tried these steps, so let me know if it does not work):
1) Format a USB drive as MBR with FAT32 (make it bootable by marking the partition as "Active").
2) Mount the ISO and copy everything to the USB drive.
3) Replace the "isolinux.bin" file and add the "ldlinux.c32" file in "/<path-to-usb-drive>/boot/isolinux/". (pull them from the "syslinux-utils" & "isolinux" packages).
4) Install Grub2 to the USB drive and utilize the existing "grub.cfg" file.
Make sure to replace the "X" in "/dev/sdX" with the appropriate Linux identifier for your USB drive.
sudo grub-install --boot-directory=/<path-to-usb-drive>/EFI/BOOT --removable /dev/sdX
5) Unmount the USB drive & the ISO image.
FYI, For anyone interested, here are the actual steps I used to remaster the ISO for proper Legacy BIOS booting:
Remastering MX500 M3CR023 ISO for Legacy BIOS Boot Note: Used Debian Stretch (amd64)
Packages Needed: syslinux-utils, isolinux, and xorriso.
Note: Assume current directory for all of the following commands is $HOME.
All paths will be relative to the current directory. # Create a working directory mkdir mx500 # Mount the current MX500 ISO Image with "broken" Legacy BIOS Boot sudo mount MX500_M3CR023_update.iso /mnt/ # Copy all of the current MX500 ISO files to the working directory sudo cp -pr /mnt/* mx500/ sudo umount /mnt # To fix the "broken" Legacy BIOS Boot sudo cp /usr/lib/ISOLINUX/isolinux.bin mx500/boot/isolinux/ sudo cp /usr/lib/syslinux/modules/bios/ldlinux.c32 mx500/boot/isolinux/ # Create a Bootable BIOS & UEFI ISO xorrisofs -o mx500.iso \ -eltorito-boot boot/isolinux/isolinux.bin -no-emul-boot \ -boot-load-size 4 -boot-info-table -eltorito-alt-boot \ -efi-boot-part --efi-boot-image --efi-boot EFI/BOOT/efiboot.img \ -no-emul-boot -eltorito-catalog boot/isolinux/boot.cat mx500/ # Make it a hybrid file so it can be "burned" to a CD or USB
# Note: the "-u" may not be needed. isohybrid -u mx500.iso # Make a Bootable USB Firmware Updater Disk (BIOS & UEFI) sudo dd if=mx500.iso of=/dev/sdX
I orignally used these sites as a reference for the remaster (among others).
Used the following website as a template:
Converted the mkisofs information to the more current xorrisfs:
NOTE: Both of these methods should work on both of the current MX300 & MX500 updaters.
I privately reported the issue & solution to Crucial. When I first notified them of the issue before I knew the cause, they told me it would work using Rufus and ISO mode as opposed to "dd" mode. I am not a Windows user so I am unable to verify if this is true. I'm not sure if there are any Linux utilities which can "burn" an ISO in this manner or not as I stopped using these utilities after encountering issues with some of them. Since your burned CD didn't work, then I cannot see that Rufus would work either. On the older Crucial firmware updaters, I always had to convert the ISO images to "isohybrid", but that did not work on the current MX300/MX500 ISOs.
01-06-2019 05:37 AM
Thanks for the reply. Interesting.
Meanwhile, I tried booting with UEFI, as suggested in another post, and everything worked. This of course rules out any need to use a Windows Rufus program. dd is the right utility to use to install onto a USB stick under unix style operating systems. It was already pretty obvious that the image was being installed correctly since the boot made it into a ISOLINUX prompt.
It was interesting that the boot from UEFI appeared to use grub, completely bypassing isolinux: this looks fairly obvious from the "tree" file display that I posted yesterday.
Thanks for your suggestions about installing ldlinux.c32. I hope to have time to try it later. I think that an easier way to do what you suggest is to loop mount the iso image in rw mode. Then I can directly edit the files. Then dd the modified image to an USBstick and see what happens. I used to do that sort of thing regularly, but a long time ago, so I will have to refresh my memory.
01-06-2019 12:58 PM
I hope to have time to try it later. I think that an easier way to do what you suggest is to loop mount the iso image in rw mode. Then I can directly edit the files.
Correcting myself: I had forgotten the obvious fact that it is not possible to write to an iso9660 filesystem.
Meanwhile, I have found the firmware image itself: it is in the initread filesystem in corepure64.gz. To inspect (and retrieve) that, gunzip the file, then extract the file with cpio. Look under /opt/:
$ tree opt opt ├── bootlocal.sh ├── bootsync.sh ├── firmware │ ├── firmware.properties │ └── M3CR023 │ └── 1.bin ├── shutdown.sh └── tcemirror
The firmware is in 1.bin.
01-06-2019 03:07 PM
@Feature I tried adding just the ldlinux.c32 file, but it would not boot without also replacing the isolinux.bin file. It also would not boot by replacing just the isolinux.bin file.
The Debian maintainers do the same thing with their installers. I believe I read in their documentation that it is easier for the maintainers to create a dual boot image (especially if it needs to boot from a CD) by using syslinux for the Legacy boot and Grub2 for UEFI booting. At least that was the case in the early days of GRUB2.
There is usually multiple ways to get to the end result and your way with a loopback device should work as well. I've had a personal interest in learning how to create a dual boot ISO image which is one reason I tried remastering it. My other method is also useful in creating a bootable Windows installer using Linux or getting other ISO images to boot.