Для чего / раздел начальной загрузки действительно?

На Linux,

ss sport = :5900

Сказал бы Вам в настоящее время установленные соединения TCP на порте 5900.

Для чего-либо еще мы должны были бы знать, какой сервер VNC Вы используете, поскольку там существуют десятки.

Если Вы знаете название команды сервера VNC,

lsof -ai tcp -c that-command

(как пользователь, выполняющий сервер VNC или как корень), также сказал бы Вам в настоящее время установленные соединения TCP, обработанные тем, что сервер VNC (в случае, если это не находится на порте 5900).

Среди методов для закрытия соединения TCP в общем случае, существует:

  • tcpkill (от dsniff пакет), который фальсифицирует пакеты TCP, которые закрыли бы соединение.
  • iptstate (Linux). Если Вы используете брандмауэр с сохранением информации. Можно удалить соединение из таблицы средства отслеживания соединения Linux (x в iptstate), который обычно заставлял бы более новые пакеты быть проигнорированными (если брандмауэр настроен, чтобы только принять новые соединения с TCP SYN). Это не уничтожило бы соединение, просто сделать это неактивным все же.
  • Добавьте, что правила брандмауэра отклонить дальнейшие пакеты передали/получили в том соединении (на Linux, iptables с целевым "ОТКЛОНЕНИЕМ", соответствуя на источнике и целевых портах TCP и IP-адресах в ВЫВОДЕ и ВХОДЕ фильтруют цепочки),
  • присоедините gdb к выполнению vnc сервер и сделайте call close(fd) где fd является дескриптором файла для соответствующего сокета (с которым Вы узнали lsof) сопровождаемый detach (это может перепутать vnc сервер много те, звоня shutdown вместо close может быть более безопасным).
41
01.01.2015, 17:17
9 ответов

Другая причина рядом с упомянутой проблемой BIOS состоит в том, что отдельный раздел / boot позволяет использовать файловую систему для тома / , которую загрузочный загрузчик не понимает (без Ограничено загрузку списка блокировки, как с LILO ).

22
27.01.2020, 19:35

Ваша команда поиска в порядке, как и опции команды shred. Я подозреваю, что Шред делает то, что не нравится NTFS и модулю Linux NTFS. Shred пытается писать и перезаписывать много раз и делать другие «из ряда вон выходящие» вещи, чтобы убедиться, что данные перезаписаны, и, возможно, драйвер linux NTFS не построен для этого?

Тот факт, что при попытке монтировать файловую систему возникают ошибки, указывает на то, что на уровне файловой системы произошла ошибка. Параметры, которые вы вводите в Шред, должны только удалять файлы, а не записывать непосредственно на устройство, так что я не понимаю, как еще вы могли повредить файловую систему, кроме сломанного драйвера.

Я бы предложил установить раздел NTFS под окнами и посмотреть, сможет ли он устранить все повреждения.

-121--151835-

Решение найдено, необходимо изменить конфигурацию samba hpux строка должна быть

 *hpux11*)
                NSSSONAMEVERSIONSUFFIX=".1"
                WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_solaris.o \
                    ../nsswitch/winbind_nss_linux.o"

вместо

*hpux11*)
                NSSSONAMEVERSIONSUFFIX=".1"
                WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_solaris.o"

Скомпилировать хорошо, запустить winbindd ok, но id donsn не сообщить пользователю (то же самое для pwget), я настроил nsswitch.conf возможно, что-то плохое в обертке nswitch

-121--146059-

Также может быть очень упорядоченным иметь отдельный/загрузочный раздел. На моей машине есть много искажений и резервных копий, каждый в своих разделах, но все они имеют один и тот же/загрузочный раздел, где находятся все ядра для всех ОС. Кроме того, все distros указывают на мою единственную копию lilo.conf, которая также находится в/boot, так что мне никогда не придется догадываться, что происходит, когда я добавляю ядра, добавляю distros, что угодно. Вот отрывок из моего lilo.conf:

image  = /boot/vmlinuz-3.16.0-4-686-pae
initrd = /boot/initrd.img-3.16.0-4-686-pae
root   = "LABEL=y5--5-Debian1"
label  = y5:D1:16.0-4

image  = /boot/vmlinuz-3.16.0-4-686-pae
initrd = /boot/initrd.img-3.16.0-4-686-pae
root   = "LABEL=y8--5-Debian2"
label  = y8:D2:16.0-4

image  = /boot/vmlinuz-3.16.0-4-686-pae
initrd = /boot/initrd.img-3.16.0-4-686-pae
root   = "LABEL=y11-5-Debian3"
label  = y11:D3:16.0-4

image  = /boot/vmlinuz-3.16.0-4-686-pae
initrd = /boot/initrd.img-3.16.0-4-686-pae
root   = "LABEL=w5--5-Debian1"
label  = w5:D1:16.0-4

... это только мои резервные копии Debian на двух дисках. Посмотрите, как легко держать трек ядра? (сейчас все резервные копии, использующие одно и то же ядро).

6
27.01.2020, 19:35

История

/boot содержит файлы, которые используются не операционной системой, а ее загрузчиком -. Вы найдёте оба файла самого системного загрузчика (например, /boot/grub/* для Grub) и ядра Linux (/boot/vmlinuz*) и часто связанный с ним initrd или initramfs.

На ПК с старым BIOS (в отличие от более нового UEFI, найденного на последних компьютерах), программное обеспечение в ПЗУ загружает в память первые 512 байт загрузочного диска (загрузочный сектор загрузочного сектора). Имея всего 512 байт (не все из которых даже содержат код: некоторые из них содержат данные, такие как таблица разделов), код не может сделать много - там не может быть настоящего драйвера диска. Все, что можно сделать в таком ограниченном пространстве, - это использовать интерфейс BIOS для загрузки большего количества кода. Этот интерфейс предоставляет команду для загрузки N-го сектора на диск - и размер N ограничен, так что таким образом можно достичь только начала диска.

Интерфейс BIOS за три десятилетия немного развился , но его ограничения по размеру с трудом соответствовали размерам диска, что приводило к тому, что старые BIOS и системные загрузчики выходили на 32 Мб, 512 Мб, 2 Гб, 8 Гб (и, возможно, другие пороговые значения, которые я не помню). Загрузчик должен иметь возможность использовать интерфейс BIOS для загрузки всех частей, необходимых для прямого доступа к диску. Загрузчики обычно не содержат драйверов для всех дисковых контроллеров, так что всё, вплоть до загрузки ядра Linux (и initrd/initramfs), должно использовать интерфейс BIOS и, таким образом, помещаться в начале диска.

Заметим, что это ограничение BIOS или системного загрузчика, а не самого Linux или дистрибутива.

Раздельное /boot сегодня

На системе с недавним BIOS и недавним системным загрузчиком, или с UEFI, ограничения по размеру больше не актуальны: размеры дисков теперь долгое время наверстывают упущенное. Однако, есть и другие примеры использования, которые делают полезным отдельный раздел /boot. Он позволяет основной системе находиться на RAID устройстве, которое системный загрузчик не поддерживает, или на типе файловой системы, который системный загрузчик не поддерживает. Это позволяет основной системе находиться на зашифрованном устройстве, которое Linux может расшифровать, но не в системном загрузчике.

Если ни одно из этих ограничений и случаев использования не применимо к вам, сохранение /boot в качестве отдельного раздела не пригодится. Но они затрагивают достаточно людей, которые поддерживают их в большинстве дистрибутивов.

25
27.01.2020, 19:35

БУТИНГ жестко

Загрузка... ну... это действительно самая трудная часть. Каждый раз, когда компьютер загружается, он, по сути, встречает себя заново. Он знакомится со своими различными частями, и для каждой из них он приобретает возможности. Но он должен каждый раз подтягивать себя, так сказать, с квадрата.

При проектировании процесса загрузки фокус в том, чтобы поднять машину поэтапно. Ваша загрузка должна быть быстрой и надежной, и то и другое должно быть в совершенно незнакомой обстановке каждый раз . Я даже не буду рисковать разговором в реальном/защищенном режиме (что не означает, что я даже мог бы) , но при загрузке происходит много чего. По мере того, как компьютер каждый раз ассимилирует свои различные компоненты по ступенчатости. Наверное, самым важным из них является переход от выполнения бортового кода к выполнению кода на диске, или, другими словами, выполнение ядра. Это когда прошивка (якобы) сдаётся операционной системе.

Много лет назад это было не так. Раньше BIOS действительно был базовым входом/выходом - обычные программы обращались к прошивке для таких вещей, как рисование экрана и доступ к диску. Они назывались прерываниями - старые шляпы, возможно, лучше запомнят их за то удовольствие, которое они часто находили, назначая IRQ для своей новой матрицы точек или USR.

INT13H

Это прерывание ( или INT в языке ассемблера) серии 13H, которое BIOS предлагает в качестве сервисов для доступа к диску. Они используются и сегодня для систем BIOS при загрузке для перехода с микропрограммы на диск.

Система BIOS проверяет первые несколько байт каждого найденного диска и ищет образец, который она распознает как Master Boot Record ( или MBR). Это стандарт де-факто десятилетней давности и включает в себя немного сырого исполняемого двоичного файла, который записывается в заголовок диска. MBR отмечает диск BIOS как загрузочный. Она перестает проверять, когда находит его, и поэтому практически все, что вы получаете без всякой хитроумной хитрости. Когда она находит его, то записывает его в память и запускает (в реальном режиме, но я все равно туда не пойду) .

Выполненная MBR почти наверняка не является ядром Вашей системы - 512 байт (give or take) в этом отделе было бы довольно бесполезно. Вероятно, это загрузчик - программа, специально разработанная для преодоления одного из множества адресующих ограничений BIOS - а именно того, что она вообще не понимает никакой файловой системы.

Когда системный загрузчик прочитает в реальном ядре и выполнит его в памяти (как мы все молимся каждый раз) , он, вероятно, сделает это, запросив BIOS через вызов прерывания INT13H . А если нет - многие фантазирующие системные загрузчики будут монтировать файловые системы в обычном смысле и выполнять код другим способом - то маловероятно, что системный загрузчик стал таким фантастическим без INT13H или двух. Часто загрузчики должны сами загружаться цепочками - или различными стадиями , потому что 512 байт, выделенных им вначале, не подходят даже для их нужд.

CHICKEN AND EGG

Все это обходной способ обсуждения диска, я знаю, но к этому моменту должно быть совершенно ясно, что основная проблема - можно назвать ее типом chicken-and-egg - это доступ к диску, который содержит инструкции программы о том как получить доступ к дискам. Ключом к решению этой проблемы является прошивка - и продолжает существовать совершенно по-разному даже на EFI системах - и, слабенькая или нет, прошивка является самым важным звеном в цепочке загрузки.

Видите ли, как только ядро выполняется, и инициируются все его бесчисленные процедуры доступа и управления аппаратурой, все эти проблемы как бы исчезают (или, по крайней мере, несколько меняются), потому что современные операционные системы берут полный контроль над системой, но до тех пор, пока они не сделают это, пределы системы расширяются только настолько, насколько позволяет микропрограммное обеспечение. Это говорит о многом - BIOS не сильно изменился с 8086 года. Вызов INT13H - это оригинал 8086 года. Да, были (множество) расширений и, конечно, взломаны, но нововведения...?

Побольше и побольше

Большая часть изменений в БИОС была, в лучшем случае, просто бинтами. Раньше это был жесткий диск, который должен был быть физически отображен - различные и специфические аспекты его геометрии упоминались при хранении данных на нем или извлечении из него. В конце концов, обычный жесткий диск вырос до размера, запрещающего это. Даже просто абстрактная карта была слишком большой информацией , чтобы BIOS мог ее обрабатывать. Так как он может работать только в реальном режиме, BIOS ограничен 1 МБ на регистр памяти. Разбухайте карту цилиндров больше, чем это, или сделать любое из его свойств больше, чем может быть адресовано в таком количестве битов, и BIOS буквально теряется - вне пределов.

Этот барьер встречался и преодолевался много раз. Каждый раз карта абстрагировалась и кодировалась каким-то более новым, умным и менее точным способом. И поэтому в наши дни для BIOS буквально невозможно точно отобразить диск. Адресация логических блоков теперь является де-факто стандартом, хотя некоторые переводы Цилиндр/Голова/Сектор (или CHS) все еще необходимы. То, что прошивка материнской платы потеряла в точности/ответственности, такие расширения абстрагируют и добавляют в прошивку диска ответственность за заполнение пробелов.

Именно на эту игру "кошка-мышка" и дана ссылка в вашем вопросе. Когда BIOS не понимает диск за пределами определённой точки из-за его огромных размеров, то любые данные, которые вы захотите получить при загрузке - такие как системный загрузчик или ядро - лучше, наверное, не искать за пределами этой точки. Вот откуда взялся /boot.

MAYBE ACTUALLY BETTER

В наши дни такие вещи, к счастью, не имеют отношения к BIOS. Прошло 30 лет, но за последние несколько лет он был в значительной степени заменен стандартом UEFI (или EFI 2.0). UEFI предоставляет mount с минуты на минуту, инициализируется в режиме Protected Mode, включает в себя свой загрузчик, обеспечивает перезагрузку постоянной переменной флэш-памяти, он способен обрабатывать некоторые ампутированные зетабайты или что угодно на диск... и многое другое. Он далек от совершенства, но значительно улучшен по сравнению со своим предшественником.

Даже аргументы в пользу специализированных системных загрузчиков, включающих дисковую шифровку или многоуровневую файловую систему, оказываются неудачными, когда вы считаете, что все это должно быть обработано ядром ОС в любом случае, и если при загрузке вам предоставляется монтировка, то вы всегда получаете четкий снимок для выполнения (особенно если учесть, что ядро Linux, в его конфигурации по умолчанию, является EFI-исполнителем).

И поэтому отдельный /boot раздел, вероятно, не должен вас слишком беспокоить, и если вы работаете на EFI системе, то, вероятно, вы уже имеете аналог в EFI-системном разделе в любом случае, так как это является требованием для загрузки EFI режима.

18
27.01.2020, 19:35

Другая причина для загрузки в наши дни:

  • Загрузка из NFS или NBD
  • зашифрованного корневого раздела
  • / Boot Chared Betweed Разные распределения
4
27.01.2020, 19:35

Это ограничение, налагаемое иметь очень старый биос и загрузчик, а не сам Linux. BIOS сможет получить доступ только к первым 1024 цилиндрам диска (см. здесь для получения дополнительной информации о том, какие цилиндры / головки / секторы являются). Это ограничение будет распространяться на загрузчики, которые, благодаря их простой природе, не будут иметь свои собственные дисковые драйверы и будут использовать услуги BIOS для доступа к диску.

Это означало, что как загрузчик, так и ядро ​​(поскольку задание загрузчика, чтобы загрузить ее), должна быть в пределах первых 1024 цилиндров на системах с этим ограничением. Простой способ сделать это было создать раздел / boot / boot раздел, содержащий ядро ​​и поместите его в начале привода (обычно просто сделав его первым разделом). Это означает, что это физически проживает в течение первых 1024 цилиндров, при условии, что раздел был не слишком большой.

Ограничение больше не является проблемой, потому что оно относится только к старым биозам. Кроме того, многие современные загрузчики (например, Grub) имеют свои собственные дисковые драйверы, и поэтому не нужно полагаться на услуги BIOS. Современные загрузчики могут использовать / Boot для других целей для других целей, но его больше не требуется как на отдельном разделов , так и в течение первых 1024 цилиндров (хотя есть много случаев, когда это Необходимо иметь / boot на отдельном раздевании).

35
27.01.2020, 19:35

Как указано в сообщении @ steeldriver, проблема может быть вызвана другим стилем окончания линии, чем то, что ожидает grep .

Для проверки окончаний строк

можно использовать hexdump для точной проверки форматирования окончаний строк. Рекомендуется использовать мой любимый формат:

hexdump -e '"%08_ad (0x%08_ax)    "8/1 "%02x ""   "8/1 "%02x "' -e '"    "8/1 "%_p""|"8/1 "%_p""\n"' masternospaces.txt

В выходных данных проверьте окончания строк: 0a - > LF , 0d - > CR . Очень быстрый пример может привести следующее:

$ hexdump -e '"%08_ad (0x%08_ax)    "8/1 "%02x ""   "8/1 "%02x "' -e '"    "8/1 "%_p""|"8/1 "%_p""\n"' masternospaces.txt
00000000 (0x00000000)    4e 6f 20 43 4f 57 20 65   6e 64 69 6e 67 0d 0a 45    No COW e|nding..E
00000016 (0x00000010)    6e 64 69 6e 67 20 69 6e   20 43 4f 57 0d 0a          nding in| COW..

Обратите внимание на окончание строки в формате dos: 0d 0a .

Для изменения окончаний строк

Здесь можно увидеть или здесь для различных методов изменения окончаний строк с помощью различных инструментов, но для одноразовой вещи всегда можно использовать vi/vim:

vim masternospaces.txt
:set fileformat=unix
:wq

Не изменяя ничего

Если вы просто хотите, чтобы grep соответствовал независимо от окончания строки, вы всегда можете указать следующие окончания строки:

grep 'COW[[:cntrl:]]*$' masternospaces.txt

Если отображается пустая строка, можно проверить, действительно ли что-то было согласовано с помощью опции -v в cat :

grep 'COW[[:cntrl:]]*$' masternospaces.txt | cat -v

Мой личный фаворит

Вы также можете сделать вывод и стандартизировать его с помощью sed :

sed -n '/COW^M*$/{;s/^M//g;p;};' masternospaces.txt

где ^ M получается путем ввода Ctrl-V Ctrl-M на клавиатуре.

Надеюсь, это поможет!

-121--22411-

Я обнаружил, что мне пришлось изменить файл/etc/resolv.conf.

Мне пришлось взять или прокомментировать две существующие строки сервера имен и добавить туда следующее:

sudo echo nameserver 208.67.222.222 >> /etc/resolv.conf
sudo echo nameserver 208.67.220.220 >> /etc/resolv.conf

После добавления и сохранения, я могу нормально подключиться к любой VPN.

Спасибо

-121--244576-

Это не было ограничением для дистрибутива Linux, но оно было ограничением для старых версий BIOS. В те времена, чтобы обеспечить возможность загрузки Linux, все файлы, связанные с загрузкой, были помещены в свой собственный раздел, который был сделан первым разделом на жестком диске, чтобы гарантировать, что загрузчик попадает в первые 1024 цилиндра. Создайте раздел, размер которого меньше размера 1024 цилиндров (варьируется от жесткого диска до жесткого диска). Но если вы создадите первый раздел, который больше, чем эта граница, есть вероятность, что файлы загрузчика будут расположены за пределами 1024 цилиндров, и BIOS не сможет загрузить их.

Вы также можете достичь того же эффекта, создав два небольших раздела, оба из которых лежат в пределах первых 1024 цилиндров, и поместив все файлы загрузчика на второй.

5
27.01.2020, 19:35

, что существует каталог / Boot , и оттуда «фиксирован» в стандарт стандарта файловой системы . Наличие такого стандарта позволяет программам (и Sysadmins) ожидать определенных файлов в определенных местах. В этом случае файлы, связанные с процессом загрузки.

, имеющий раздел / Boot в начале диска, имел смысл для более старых биосов, которые не смогли индексировать блоки / секторы в полном диапазоне дисков, которые были доступны. Из-за этой информации, которая должна быть загружена, должна быть на секторе, которая может быть проиндексирована, поэтому отдельный раздел (с низкими секторами) для / boot , из которых BIOS может загрузить дополнительные данные / программы (которые В свою очередь были способны обращаться к полному диапазону дисков без использования BIOS).

8
27.01.2020, 19:35

Хотя в современных системах к секторам файла можно получить доступ из любого места на диске, все же имеет смысл ограничить загрузочные материалы их собственным загрузочным разделом, просто из принципа «не кладите все яйца в одну корзину» .

Предположим, что основная файловая система повреждена таким образом, что какой-то загрузчик нижнего уровня не может правильно прочитать следующий этап. Если вместо этого материалы загрузчика находятся в своем собственном разделе, тогда ядро ​​может подойти и правильно обработать поврежденный корневой раздел через fsck. Само это может быть в отдельном разделе.

Загрузочный раздел может дать вам варианты «спасения», например, смонтировать альтернативный корневой раздел. Кроме того, что, если вы загружаете разные операционные системы в несколько разделов? Тогда загрузочные материалы не принадлежат ни к одной из этих систем. Разумно, чтобы у него была своя перегородка. Вы можете заменить любой из разделов ОС другой ОС, но при этом иметь возможность загружать остальные ОС.

А что, если вы хотите использовать файловую систему для вашего основного раздела, которую загрузчик вообще не понимает? Или, скажем, для которых поддержка со стороны загрузчика является экспериментальной? В таких ситуациях файл времени загрузки все еще может использоваться, если есть карта секторов (и загрузчик поддерживает такую ​​вещь: старый добрый загрузчик Linux LILO использовал карты секторов, и поэтому не нужно было понимать файловую систему структура вообще). Но карты секторов по своей сути нестабильны. Если файловая система реорганизуется, секторы перемещаются, и поэтому карты секторов становятся некорректными и должны быть восстановлены, иначе система не сможет перезагрузиться.

Наконец, существует организационный принцип, согласно которому даже если у вас нет настоящего раздела, все равно рекомендуется, чтобы все загрузочные материалы были как минимум в / boot , а не разбросаны где-либо еще. .

5
27.01.2020, 19:35

Теги

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