Согласно этой статье, Отключение звука запуска MacBook в Linux ,
several Internet sources suggest that writing EFI variables from Linux may sometimes corrupt your Apple firmware. I didn't research this any further. If you happen to figure out how to successfully write to these variables under Linux please let everyone know in the comments (in case OS X recovery mode goes missing, you know).
Их решение состояло в том, чтобы просто использовать nvram
для отключения звука с помощью следующей команды:
nvram SystemAudioVolume=%00
Для этого они также использовали режим восстановления, удерживая Cmd + Option + R .
Другой вариант — просто записать в переменную, используя printf
, метод, обсуждаемый в комментариях к блогу.
Примечание :Этот метод потенциально опасен, рекомендуется сначала использовать предыдущий метод.
# Ensure efivars are mounted
mount | grep efivars
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,relatime)
# Remove immutable bit, allows modification
chattr -i /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82
# Set volume to 00
printf "\x07\x00\x00\x00\x00" > /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82
# Display new value
efivar -n 7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume -p
GUID: 7c436110-ab2a-4bbb-a880-fe41995c9f82
Name: "SystemAudioVolume"
Attributes:
Non-Volatile
Boot Service Access
Runtime Service Access
Value:
00000000 00
awk-ответ @steeldriver правильный и, вероятно, это все, что вам нужно, но если ваш ввод становится массивным, он может исчерпать память и/или стать относительно медленным, и в этом случае вот подход украшения/сортировки/декорации, который будет продолжать работать:
nl -w1 -s, file | # Decorate by prefixing with line numbers
sort -ut, -k2,2 | # Sort uniquely by the real key field
sort -nt, -k1,1 | # Sort whats left by the line numbers we added
cut -d, -f2- # Undecorate by removing the line numbers