Drive won't boot... after cloning, why?
У меня нет под рукой /etc/default/grub
, но я воспользуюсь строчкой из вашего скрипта bootinfo
# auto-mount of windows drive
#/dev/disk/by-uuid/9CDAC383DAC357E2 /mnt/9CDAC383DAC357E2 auto nosuid,nodev,nofail,x-gvfs-show,ro 0 0
так что ваш исходный диск имеет UUID любой
вы клонируете содержимое этого диска на новый диск или NVME. И содержимое grub на новом диске по-прежнему будет ссылаться на uuid независимо от , который был старым диском, а не текущим новым диском.
Этот новый диск не будет иметь тот же UUID, что и исходный, вы должны исправить везде, где он использовался, в основном /etc/default/grub
и за ним следует grub2-mkconfig
, а также исправить свой /etc/fstab
.
I believe the problem arises from both drives having the same disk UUID, am I right?
UUID = универсальный уникальный идентификатор. UUID должен быть другим.
Существует несколько способов монтирования диска... по -uuid, или по -id, или по -имени, или по -метке, или по -пути в верхней части моего голова. Я не знаю, все ли дистрибутивы Linux следуют этой модели, но если вы посмотрите в /dev/disk/
, вы должны увидеть подпапки
если вы делаете по -имени , то это просто вызывает диск из /dev/sda1
или /dev/sd??
, что не является уникальным, и я не рекомендую делать... если есть только когда-либо один диск присутствует, тогда он будет /dev/sda
и будет работать, но он не будет уникальным и не будет явным, поэтому со временем вы рискуете. И все может быть еще сложнее, если NVME отображается по-другому, как/dev/nvme????
с вашего fdisk:
Disk /dev/nvme0n1: 477 GiB, 512110190592 bytes, 1000215216 sectors
Disk identifier: 1207A335-32CA-4B6C-A508-29A0E85597C4
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 194559 192512 94M EFI System
/dev/nvme0n1p2 194560 488396799 488202240 232,8G Linux filesystem
/dev/disk/?
и найдите соответствующий идентификатор. /etc/fstab
на этом диске, чтобы использовать этот идентификатор, он будет иметь текст, ссылающийся на старый диск, потому что вы клонировали.Вы не имеете в виду:
cat $(echo test.tex | sed 's/[^.]*$/pdf/') | zathura -
Так что результат вашего sed
является аргументом для cat
, а не его стандартным вводом.
Вы также можете использовать:
cat $(basename $file.tex).pdf | zathura -
или
cat ${file%.*}.pdf | zathura -
Я не рекомендую открывать файл с помощью STDIN
в программе просмотра документов, которая предлагает такие функции, как автоматическое обновление документа или SyncTeX. Это разрывает связь между исходным файлом и программным обеспечением, поскольку открытый файл будет копией исходного файла. Отображаемый файл на самом деле будет что-то вроде /tmp/zathura.stdin
. Это может привести к проблемам с безопасностью, и когда исходный файл LaTeX будет перекомпилирован, отображение в программном обеспечении не будет обновлено.
Так зачем возиться с cat
, если можно просто передать имя файла в качестве аргумента следующим образом:
zathura $(basename file.tex.tex).pdf
или используяsed
zathura $(echo file.tex | sed 's/[^.]*$/pdf/')