Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

tinygoblin

macrumors regular
Original poster
Feb 20, 2022
121
33
This is addressed primarily to owners of 2016+ 13/15-inch MacBook Pro with Boot Camp volume on internal SSD.

I'm trying to set Boot Camp volume (located on internal SSD) label displayed in Startup Manager (Option-boot, boot loader) to something different than Windows. The commands I use are listed everywhere on the Internet:
Code:
sudo diskutil mount disk0s1
sudo bless --folder /Volumes/EFI/EFI/Boot --label "Boot Camp"
sudo diskutil unmount disk0s1
But this doesn't work!

However very same commands work perfectly for similar Boot Camp volume on my external SSD:
Code:
sudo diskutil mount disk4s1
sudo bless --folder /Volumes/EFI/EFI/Boot --label "Boot Camp"
sudo diskutil unmount disk4s1

I've also tried these without luck:
Code:
bless --folder /Volumes/EFI/EFI/Boot/bootx64.efi --file "Boot Camp"
bless --folder /Volumes/EFI/EFI/Boot --file /Volumes/EFI/EFI/Boot/bootx64.efi --label "Boot Camp"
bless --folder /Volumes/EFI/EFI/Microsoft --label "Boot Camp"
bless --folder /Volumes/EFI/EFI/Microsoft/Boot --label "Boot Camp"

The files ._.disk_label, ._.disk_label_2x, .disk_label, ._disk_label_2x are created successfully every time in corresponding folder. I also tried copying working %disk_label% files from external SSD's folder /Volumes/EFI/EFI/Boot to internal SSD's folder /Volumes/EFI/EFI/Boot - no luck.

Would someone kindly double-check if bless command is working or not on their internal SSD's Windows volume? This will make it clear if it's a firmware bug I'm dealing with.

P.S.
1. Sources of my research: zero, one, two, three, four (%disk_label% file structure and meaning explanation).
2. Cross-posts: one & two.
3. Reports of the same problem: MacBook Air, Mac Pro
4. Command that returns firmware version: system_profiler SPHardwareDataType
 

Attachments

  • Startup Manager.jpg
    Startup Manager.jpg
    296 KB · Views: 313
Last edited:
Reason you can't change the bootcamp volume name while in macOS -- the volume is formatted NTFS, and is natively read-only. As haralds posted above, change the volume name while in Windows.
 
@haralds @DeltaMac Boot Camp volume name of internal SSD is set to "Boot Camp" in Windows and is reported as "Boot Camp" in Disk Utility and diskutil list (both in macOS and macOS Recovery). Changing volume name does not affect volume label (which in fact is an image file) in Startup Manager; name and SM-label can be different.
 
You DID say that you wanted to find out how to change the name of the Boot Camp volume.
When you change the name of that volume (while booted to Windows), then the name change is everywhere, including the boot-picker screen. You can change the name while booted to Windows,
I'm pretty sure that the image file that you mentioned, would be the file named .VolumeIcon.icns
That's where the graphic is stored for that particular volume volume. I don't think you can do anything with the volume icon for the boot camp volume, same reason, it's NTFS format, so no natively writeable from macOS. I don't know how to change the boot volume icon graphic in Windows. There is likely a method to do that -- I've not ever searched for that kind of Windows mod.
 
@DeltaMac No offence, but according to thread title I asked for help with weird behavior of handling EFI / Windows volume name of internal SSD displayed during Option-boot in Startup Manager. Sorry but what you report regarding handling volume name is not related to my question (as I stated, volume names are OK, it's volume label in Startup Manager that's stuck). Please examine links in my first post (i.e. link five) to get a better idea how volume labels in Startup Manager are supposed to work. You'll then understand the difference between volume name and volume label more clearly. Long story short, bootable volume names in Startup Manager are in fact volume labels which are in fact images generated by bless command that sit in the folder of .efi bootloader file. That's what I believe to be the case according to my testing and research. I can bless any name to external SSD's /Volumes/EFI/EFI/Boot and I'll get a new custom volume label in Startup Manager, all without touching volume name in Windows, i.e currently my volume name for external Boot Camp volume is set to Local Disk in Windows but my volume label for that volume is set to "Boot Camp" using bless. However bless does nothing to internal EFI volume, it's always "Windows". I'll be happy if someone could prove me wrong and help with this issue or report this was indeed a firmware bug that has been fixed in 11.6.8. I believe there may be a different folder I should bless as well. I'm grateful for your input anyway!

P.S. I'm not changing volume icon, it can be changed. You may find it interesting that a firmware bug that prevented custom volume icons in Startup (Boot) Manager has been introduced in macOS 11.3 and fixed later on.
 
Last edited:
  • Like
Reactions: DeltaMac
@bogdanw Yes, also diskutil list, Disk Utility and Finder all show volume name as Boot Camp.

P.S. I use your macOS Big Sur debloat script from GitHub, thank you for releasing it!
 
  • Like
Reactions: bogdanw
Based on the command’s description from the manual page (man -t bless | open -fa "Preview"), “bless - set volume bootability and startup disk options”, I wouldn’t play too much with it. :)

For example, “bless --folder /System/Volumes/Data --label "macOS Big Sur"” doesn’t seem right, as “Folder Mode allows you to select a directory on a mounted volume to act as the “blessed” directory, which causes the system firmware to look in that directory for boot code.”

If you accept the potential risk, maybe try the other way mentioned:
bless --device device --label name
“Device Mode is similar to Mount Mode, but allows selection of unmounted filesystems, for instance while in single user mode. It can also perform certain offline modifications to the filesystem, but is not generally recommended.
Device Mode has the following options:
--device device Use the block device device to change the active boot volume. No vol- umes should be mounted from device , and the filesystem should already be properly blessed.
--label name Set the firmware-based OS picker label for the unmounted filesystem, using name , which should be in UTF-8 encoding.
--labelfile file Use a pre-rendered label used with the firmware-based OS picker.”
 
@bogdanw Yeah, I've examined bless man and I agree it's risky experiment (that's why I'm asking for help and won't try bless with --device switch, not sure if that can be --unbless easily and no man for --unbless). The case is the command worked perfectly for non-T2 Mac before and works for same installation (macOS + Boot Camp) on external SSD. I believe man is incomplete since command works since there's like a better explanation in link five of postscript to opening post regarding bless. Maybe you'll come up with something I'm missing.
 
Have you tried mounting the EFI volume? What’s inside?
Sure, but it's fine (file structure and count are the same on external and internal SSDs):
Code:
/Volumes/EFI/.VolumeIcon.icns
/Volumes/EFI/EFI
/Volumes/EFI/EFI/Apple
/Volumes/EFI/EFI/Apple/Caches
/Volumes/EFI/EFI/Apple/Caches/CAFEBEEF
/Volumes/EFI/EFI/Apple/Log
/Volumes/EFI/EFI/Apple/Log > *.LOG files
/Volumes/EFI/EFI/Boot > bootx64.efi, *disk_label* files
/Volumes/EFI/EFI/Microsoft
/Volumes/EFI/EFI/Microsoft/Boot >
                > bootmgr.efi, bootmgfw.efi, memtest.efi, BCD, *.LOG, *.DAT, *.DLL, *.STL files
                > /en-US > .MUI files
                > /Fonts > .TTF files
                > /Resources >
                         > bootres.dll
                         > /en-US/bootres.dll.mui
/Volumes/EFI/EFI/Microsoft/Recovery > BCD and .LOG files
 
Sure, but it's fine (file structure and count are the same on external and internal SSDs):
/Volumes/EFI/EFI/Boot > bootx64.efi, *disk_label* files
If replacing the *disk_label* files didn’t work, how about editing them. Is it possible?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.