В WindowsToGo есть функция Drive removal detection, которая позволяет при случайном выдёргивании флешки с ней подождать 60 секунд и продолжить работу, если флешку обратно вставят.
А Linux так может? Долго думал, но кроме скрипта, который при помощи kexec перезапустит систему снова с флешки, ничего не придумал. Как в Linux заморозить всё I/O, предназначенное устройству, а потом применить его на другое устройство? Программу, которая будет это делать, можно удержать в памяти при помощи memlockd.