Как я выполняю прокси носка через ssh на нестандартном порте?

Ответ на этот вопрос многогранен.

UEFI! = BIOS

Первое, что вы должны сделать, это попытаться забыть все знания, связанные с загрузкой BIOS, которые у вас могут быть - здесь они не применяются. Нет MBR, нет загрузчика второй ступени , нет раздела boot . Эти вещи, к счастью, быстро устаревают, как и 16-разрядный дисковый интерфейс реального режима BIOS INT-13H четвертьвековой давности, для поддержки которого они были разработаны.

ПРОЦЕСС ЗАГРУЗКИ

Затем вам нужно подумать о выполнении загрузки. Когда ваш компьютер запускается, микропрограмма выполняет несколько действий перед вызовом исполняемого файла EFI - ядра вашей операционной системы или некоторого избыточного загрузчика цепочки, которому дано указание вызвать ядро ​​вашей операционной системы.

FAST-BOOT

Сначала проверяется питание и прерывание, затем проверяется видео. Он либо вызывает старую опцию BIOS видео в реальном режиме и ждет ее завершения, либо обнаруживает видеопЗУ GOP в защищенном режиме, нажимает переключатель и переходит к следующему этапу. Это по большей части то, что подразумевается под быстрой загрузкой в большинстве интерфейсов. Либо микропрограммное обеспечение должно обрабатывать бит реального режима с помощью своего CSM (модуль поддержки совместимости) , либо оно может автоматически реализовать несколько стандартов GOP и оставить остальную часть инициализации видео для ОС, которая скоро будет призывать. У вас, судя по всему, видеокарта, совместимая с GOP. Использование этой функции в полной мере не относится к Windows.

ВСЕ ЕЩЕ НЕ BIOS

Он также загрузит все драйверы UEFI, которые OEM-производитель сохранил во флэш-памяти на вашей материнской плате, но по большей части мы можем игнорировать это, за основным исключением является FAT драйвер файловой системы. Как я упоминал ранее, нет раздела MBR или boot , но есть раздел EFI-system . Эти два принципиально отличаются тем, что первый был разделом, из которого прошивка BIOS считывала первый сектор необработанного диска и выполняла любой найденный там код, тогда как последний - это раздел, который монтируется прошивкой UEFI как файловая система и из которой он будет выполнять файл.

ESP

Существует максимум один esp отмеченный раздел на каждый диск, отформатированный в формате GPT. У вас уже есть жестко отформатированныйдиск, иначе у вас никогда бы не было быстро загружаемой Windows. Тип формата вашего USB-диска на данный момент мне неизвестен. Для некоторых прошивок UEFI съемные диски являются особыми случаями, поскольку их не нужно помечать esp , если у них вообще нет таблицы разделов - другими словами, часто можно загрузиться с USB-диска, который никогда не был разбит на разделы. и полностью отформатирован в файловой системе FAT. Это не обязательно надежная функция, но это обычное дело.

BOOT0000

Когда встроенное ПО монтирует раздел esp , оно загружает путь, который хранится в памяти. Модуль памяти представляет собой встроенную микросхему NVRAM, на которой микропрограммное обеспечение хранит информацию, которая потребуется ей между загрузками, например, переменную Boot0000- {GUID} . В вашем случае содержимое этой переменной, скорее всего, $ {ESP-GUID} \ EFI \ BOOT \ BOOTx64.efi , что почти всегда указывает на собственный менеджер загрузки Microsoft - (который равен not BOOTMGR.efi , между прочим - он появляется позже в процессе загрузки MS) .

BOOTx64.efi

Обычно вы можете просто:

mv ${ESP}/EFI/BOOT/BOOTx64.efi ${ESP}/EFI/BOOT/BOOTx64.efi.bak
mv ./${mybootmgr}.efi ${ESP}/EFI/BOOT/BOOTx64.efi

... вообще никогда не редактировать переменную NVRAM.

NVRAM

При загрузке в режиме EFI ядро ​​Linux должно автоматически загрузить свой модуль ядра efivarfs и смонтировать содержимое NVRAM в / sys / firmware / efi / efivars . Вы можете ls этот каталог и увидеть имена всех ваших переменных efi. Вот содержимое моей переменной Boot0002- {GUID} :

 printf %b $(
     od -An -t o1 -w1 -v \
         /sys/firmware/efi/efivars/Boot0002-* | 
     sed 's/ */\\0/'
 )
 #OUTPUT �^��~�J�3K��8���0\EFI\BOOT\BOOTX64.EF�AMBO

Бессмысленные символы являются результатом кодировки UEFI UTF-16 в отличие от кодировки UTF-8 моей системы Linux. В любом случае, просто представьте, что этот бессмысленный бит - это мой GUID esp . Думаю, у меня больше нет переменной Boot0000- {GUID} - должно быть, я когда-то удалил ее.

efibootmgr

Если и делал, то, вероятно, делал это с помощью программы efibootmgr . Если вы вызовете его без аргументов, он напечатает ваш порядок загрузки.

efibootmgr
#OUTPUT
BootCurrent: 0002
Timeout: 3 seconds
BootOrder: 0002,000F,000D
Boot0002* UEFI: KINGSTON SV300S37A120G
Boot000D* Hard Drive 
Boot000F* CD/DVD Drive 

Вот фрагмент его страницы man :

man efibootmgr 2>/dev/null | 
sed '/^ *DESCRIPTION/,/^ *OPTIONS/!d;//c\\'
#OUTPUT
   efibootmgr is a userspace application used to  mod‐
   ify  the  Intel Extensible Firmware Interface (EFI)
   Boot Manager.   This  application  can  create  and
   destroy boot entries, change the boot order, change
   the next running boot option, and more.
   Details on the EFI Boot Manager are available  from
   the  EFI  Specification,  v1.02 or later, available
   from:
    
          Note: efibootmgr requires  that  the  kernel
          support access to EFI non-volatile variables
          through      /sys/firmware/efi/vars       or
          /sys/firmware/efi/efivars/.

UEFI: УЗНАЙТЕ ЭТО

Я рекомендую вам следовать с этого момента до этого другого моего ответа а оттуда на rodsbooks.com , где также есть ссылка, и вы полностью отказываетесь от grub - это ненужное осложнение в вашем случае, как я надеюсь, вы скоро убедитесь. Но независимо от того, выберете ли вы grub в качестве EFI-исполняемого файла, который ваша прошивка будет вызывать во время загрузки, вам действительно следует прочитать rodsbooks.com .

СОЗДАЙТЕ UEFI-ЗАГРУЗОЧНЫЙ USB-накопитель

Следующая часть оболочки должна - с учетом выбора по умолчанию во время процесса установки Mint - быть способной преобразовывать вашу флешку MBR в загрузочный диск в формате GPT UEFI с собственным системным разделом EFI и менеджер загрузки. Вы можете легко добавить другие установки на эту же флешку - даже установку Windows с небольшой осторожностью - и ее намного проще поддерживать в долгосрочной перспективе. Признаюсь, я немного сомневаюсь в бит tar , так как чувствую, что должен указать некоторые параметры командной строки для сохранения разрешений файловой системы (надеюсь, кто-то знает лучше?) . Тем не менее, в qemu у меня все работало нормально - я перешел с загрузочного диска USB Mint Live на загрузочный диск USB Mint Live.

Однако вы должны заметить, что если вы настроили свой основной загрузочный раздел с удовлетворительным менеджером загрузки - таким как rEFInd - вы, вероятно, могли бы загрузить устаревший отформатированный загрузочный диск, такой как у вас сейчас.

Если вы запустите следующее, убедитесь, что в BIG_LONG_TAR_BACKUP_LOCATION_VAR_PATH путь, который не расположен в пути к каталогу / tmp / usbwd , он создает, потому что он также удалит этот каталог, когда будет выполнен. Вам понадобится как минимум unzip , tar , gdisk , wget и coreutils , установленные для его работы - все они, скорее всего, уже установлены на любой live-загрузочный диск Linux, который вы захотите попробовать, но также доступны через любой менеджер пакетов, который я могу придумать.

mkdir -p /tmp/usbwd/mintmnt; cd /tmp/usbwd; mkdir esp
wget -qO ./refind.zip \
    'http://sourceforge.net/projects/refind/files/0.8.3/refind-bin-0.8.3.zip/download'
unzip -qq ./refind.zip
sudo sh -se -- "/dev/${USBDISK}" \
    "${PATH_TO_A_DIR_WHERE_YOU_CAN_SAVE_A_BACKUP_OF_MINT_INSTALL}" \
<<\SUDO
    mount "${1}1" ./mintmnt
    tar -C ./mintmnt -czf "$2" ./; umount ./mintmnt
    printf %s\\n o y n '' '' \+750M ef00 n 2 '' '' '' w y |
        gdisk "${1}" || :
    mkfs.vfat -n USBESP "${1}1"
    ./refind*/install.sh --usedefault "${1}1"
    mkfs.${YOUR_FS_OF_CHOICE=ext4} -L MINTROOT "${1}2"
    mount "${1}1" ./esp; mount "${1}2" ./mintmnt
    mkdir ./esp/EFI/mintboot
    >./esp/EFI/mintboot/refind_linux.conf \
        printf %s\  \
            '"Linux Mint"' \
            '"root=/dev/disk/by-label/MINTROOT quiet splash"'
    cd ./mintmnt && tar -xzf "$2"
    >>./etc/fstab \
        printf %s\\n \
            '/dev/disk/by-label/USBESP /esp vfat defaults 0 1' \
            '/esp/EFI/mintboot /boot none bind,defaults 0 0'
    cp -T ../esp/EFI/mintboot ./boot/vmlinuz* ./boot/init*
    cd ..; umount ./mintmnt; umount ./esp
SUDO
    cd ~; rm -rf /tmp/usbwd

1
18.06.2014, 10:40
1 ответ

Вам следует использовать telnet, чтобы проверить, работает ли переадресация портов:

telnet localhost 1234

Вероятно, она не работает, так как вы используете неправильные SSH опции (дважды):

ssh -L localhost:1234:remoteip:5634 user@remoteip

или (в зависимости от того, какой(ие) интерфейс(ы) прослушивает сервер:

ssh -L localhost:1234:localhost:5634 user@remoteip
1
27.01.2020, 23:52

Теги

Похожие вопросы