Если на реальную сетевуху, то специальной утилиткой от ее производителя (если есть). Утилитка изменяет запись в EEPROM сетевухи. Если на виртуальную - средствами гипервизора (не все позволяют, кстати).
Все равно новый MAC слетает после перезагрузки. Выходит, программная смена адреса - это какой-то хак: то ли ip link set просит драйвер сетевухи сменить MAC (маловероятно), то ли переводит сетевуху в неразборчивый режим и цепляет к ней виртуальную с нужным маком.
У сетевухи есть свой eeprom где это самый макардес записан. Когда драйвер сетевуху инициализирует, он этот мак их еепрома считывает и записывает в соответсвенные регистры сетевухи.
Когда вы делаете ip link set, драйвер вместо еепрома берёт мак адрес их командной строки. Понятно, что после перезагрузки всё по новому и мак опять из еепрома.
Посмотрите, есть ли в драйвере для сетевухи параметр, такой как mac address. Если есть - укывайте макадр в строке загрущика.
Посмотреть, что у вас за сетевуха можно lspci -k. За одно оно и имя драйвера покажет (только в busybox этого нет. Попробуйте полноценный livecd distr). Параметры модуля можно посмотреть при помощи modinfo