Можно создать функцию оболочки:
gedit() { command gedit "$@" & }
или
function gedit() { command gedit "$@" & }
function
ключевое слово, в теории, по крайней мере, дополнительное. Может быть необходимо, если имя функции уже определяется как псевдоним; см. этот ответ для деталей.
Сборка команды - в вызывает свой аргумент как команду, обходя любую функцию оболочки того же имени.
Добавьте определение Вашему $HOME/.bashrc
таким образом, это будет настроено при запуске новой оболочки.
Очевидно, я не создавал файл /etc/crypttab
. Создайте один, затем /обновить initramfs -u
для исправления проблемы.
В Ubuntu 14.04 мне не хватало модуля ядра xts из
/etc/initramfs-tools/modules
. Другие модули, которые вы могли пропустить, могли быть следующими:
raid1
raid456
aes-x86_64
sha512-ssse3
xts
dm-mod
dm-crypt
Я обнаружил основную причину, добавив в командную строку grub (linux ) эта опция:
break=mount
, которая вызывает сброс в busybox. После этого я смог скопировать с помощью USB-накопителя (с другой машины) эти файлы на ramfs:
mkdir /boot
mount /dev/sdc1 /boot
cp cryptsetup /sbin/cryptsetup
cp libcryptsetup.so.4.0.0 /lib/libcryptsetup.so.4
cp libpopt.so.0.0.0 /lib/libpopt.so.0
cp libgcrypt.so.11.7.0 /lib/libgcrypt.so.11
cp libgpg-error.so.0.8.0 /lib/libgpg-error.so.0
/boot/cryptsetup luksOpen /dev/md10 root
(у меня также есть root-права в программном рейде, без LVM), что выдало ошибку отсутствия модуля.
Позднее мне пришла в голову хорошая идея - заранее скопировать указанные выше файлы cryptsetup в раздел / boot, чтобы вам не пришлось возиться с USB-накопителем. Другой способ - распаковать изображение initramfs один раз (заранее), например, / boot / tmp:
gzip -d < ../initrd.img-3.13.0-62-generic | cpio --extract --verbose --make-directories --no-absolute-filenames
, чтобы у вас были все рабочие библиотеки и cryptsetup, даже если ваш update-initramfs -k all -c
завершился ошибкой после некоторого обновления ядра.
Другая проблема, которая дала мне вышеуказанное сообщение об ошибке, но после исследования (как указано выше) я получил это более конкретное сообщение об ошибке:
cryptsetup luksOpen /dev/md10 cryptroot
device-mapper: table: 252:0: crypt: unknown target type
ioctl: error adding target to table
Решение: Проверьте, что /etc/crypttab имя корневого устройства (cryptroot) совпадает с /etc/initramfs-tools/conf.d/mdadm настройками. У меня был "cryptroot" в другом и "root" в другом, после синхронизации имен целевых устройств, загрузка работала как сон!
После исправления настроек выполните
update-initramfs -c -k all