Я не знаком с Xen. С KVM я просто составил бы начальную загрузку VM в спасении или живом CD и chroot оттуда. Поскольку Вы сделали бы, если бы у Вас была эта проблема на Вашем реальном рабочем столе.
Если все, в чем Вы нуждаетесь, является смещением, в целом можно использовать losetup
для этого. Или более конкретно смещения для таблиц разделов, можно использовать partx
или kpartx
.
Если у Вас есть разделенный LV, Вы могли бы получить использование смещений parted
:
parted /dev/mapper/lvm-vmfoobar unit b print
и это распечатало бы смещения раздела (в байтах) как так
Number Start End Size Type File system Flags
1 1048576B 2148532223B 2147483648B primary fat32 lba
2 2149580800B 3223322623B 1073741824B primary ext2 boot
3 3224371200B 13961789439B 10737418240B primary ext2
Поэтому предположите, что Вы хотели получить доступ к разделу 3 более прямых как, с помощью смещения 3224371200
, Вы могли сделать это с losetup
как это:
# losetup -f --show -o 3224371200 --sizelimit 10737418240 /dev/mapper/lvm-foobar
/dev/loop0
(sizelimit является дополнительным, для безопасности, таким образом, Вы не можете записать мимо конца раздела),
и проверьте, что это - корректная вещь
file -s /dev/loop0
/dev/loop0: Linux rev 1.0 ext2 filesystem data, UUID...
Кроме того, если Вы имеете partx
или kpartx
, простое
partx -a /dev/mapper/lvm-foobar
должен работать и Вы нашли бы отображенные разделы как /dev/mapper/lvm-foobarp1
или подобный (kpartx
может использовать различные имена от partx
).
И затем можно работать с тем связанным устройством (cryptsetup luksOpen
, vgchange
...), таким образом, необходимо в конечном счете смочь смонтировать корневую файловую систему VM, chroot
, и passwd
новый пароль root.
$ ()
. Echo "$ test"
. ECHO
, используйте printf
. В конце концов:
$ test="$(printf '%s' '[asdf]')"
$ printf "%s\n" "$test"
[asdf]
Самый простой ответ - избежать [
, чтобы он не воспринимался как специальный символ шаблона. (Закрывающий ]
трактуется буквально, если ему не предшествует нецитируемый [
.)
test=$(echo \[asdf])