Debian не загружается без монитора

Обновлено: 07.07.2024

Я Ubuntu 14.04 установлен на моем компьютере. Мне нужно запустить его, даже если не подключен ни один монитор.

По сути, мне нужно это сделать, потому что при запуске мой монитор не распознается, а подключается. Вот почему мне нужно продолжать запуск, даже если X не видит подключенный монитор.

Если нет монитора, мой компьютер вообще не запускается.

Я думал, что проблема возникла из Xserver но это задолго до этого (см. Edit3), но я сделал некоторую работу над X server во всяком случае, чтобы убедиться, что проблема не возникла здесь.

Я попытался вручную добавить файл конфигурации Xorg. Вот мой файл

но это все еще не работает.

PCI:0:2:0 исходит из результата команды:

lspci | grep VGA

00:02.0 VGA compatible controller: Intel Corporation ValleyView Gen7 (rev 0e)

Я тоже пробовал это через SSH

  1. Прекратить lightdm
  2. Создавать xorg.conf.new файл с Xorg -configure как корень.
  3. переименовать xorg.conf.new как xorg.conf

Вот сгенерированный файл:

Это все еще не работает.

Кажется, что не все файлы читаются или учитываются.

У кого-нибудь есть идеи?

Редактировать: вот содержание /var/log/Xorg.0.log (слишком большой, чтобы писать здесь): Xorg.log

Edit2: если я добавлю i915.modeset=1 на grub лучше, потому что я вижу grub, если подключаю монитор после запуска. Но личинка, кажется, показывается только когда я ее подключаю, а не раньше..

** Edit3: ** Проблема, кажется, происходит из-за аппаратного обеспечения и загрузки. Когда я добавил i915.modeset=1 Мой компьютер не запускается без подключенного монитора, но подождите, пока он не будет подключен. После этого начинается нормально. До этого ничего не случилось. Это означает i915.modeset=1 оказывает влияние на мою загрузку. Я не знаю, как и где, но, похоже,

2 ответа

Я наконец исправил эту проблему. Проблема возникла из grub Это мой найденный способ.

И самый важный файл:

После редактирования /etc/default/grub не забывай бегать sudo update-grub , Это будет генерировать истинное grub.cfg файл читается во время загрузки.

Это заставляет мой компьютер запускаться, даже если нет подключенного монитора.

Примечание. Если монитор не подключен вообще, экран будет черным, пока я не подключусь к компьютеру (с TeamViewer например) но компьютер все равно запустится.

Я надеюсь, что это поможет кому-то еще.

Есть несколько способов сделать это. Либо получите фиктивную заглушку для порта VGA для имитации монитора. (вы можете сделать их также)

Заглушка VGA - это простой способ обмануть GPU и Windows, позволив им думать, что на карту вставлен монитор. Принцип простоя VGA прост: имитация загрузки RGB-каналов монитора с 3 резисторами. Любой резистор от 50 до 150 Ом - это нормально.

Вам понадобится адаптер DVI-VGA, который поставляется с каждой картой GFX, резисторами и клипсатором. Вы можете использовать ножницы или кусачки для ногтей, провод мягкий.

Согните одну ножку резистора, пока она не станет параллельной другой, затем отрежьте длинную ножку, чтобы она была такой же длины, что и согнутая ножка.

Провод как раз того размера, который надежно вставляется в VGA plus.

Толкни его домой. Обратите внимание, что вы хотите соединить три верхних штыря справа со штифтами прямо под контактом один к одному. Держите вилку так, чтобы широкая часть находилась сверху.

Чередуйте резисторы так, чтобы нога одного находилась напротив тела другого, чтобы избежать короткого замыкания перемычек.

Сейчас нужно накатить мой любимый дебиан ленни, который я юзаю на всех своих серверах, на сервер, не имеющий монитора. По сему вижу такое решение проблемы - вытаскиваю винт, тащу его на работу, подтыкаю к рабочему компу и вкатываю туда полный дебиан ленни без иксов и графики. Сразу же поднимаю на нем ssh, засовываю демон ssh в rc-update и несу винт со свежеустановленным дебианом домой, где доблестно втыкаю его в роутер (сеть настраивается автоматом, благо dhcp) и коннектюсь с ноута по ssh для дальнейшей настройки.

Собственно сабж - какие могут быть подводные камни? (не подхватится железо на домашнем сервере, не заработает что)



из подводных камней - почистите привязку ethX к мак адресу сетевой карты

иначе новая сетевая карта станет не eth0 а eth1


Спасибо. *ушел раскручивать сервак*


Я думаю, что Debian Linux не запустится без видеокарточки и монитора, подключенного к ней.


Видюшка есть, Nvidia 7600gs


Просто подключить ее не к чему =)


ну и про /etc/fstab тоже не забудьте, еще загрузчик

Я в своё время подключил PCI-видеокарту и клавиатуру, и быстренько поставил систему на месте.


>как это так, Debian не может запусться при вынутой/нерабочей видюшке

Это бздуны-неосиляторы вынимали видюхи и дальше биоса дело не шло?


В принципе, все должно заработать.


> Я думаю, что Debian Linux не запустится без видеокарточки и монитора, подключенного к ней.

ты не задумывался как тогда все VPS-ы работают? Или на каждую виртуалку провайдеры по видео-карте держат?


>ну и про /etc/fstab тоже не забудьте, еще загрузчик

З.Ы. Монитора нет вообще, только ноутовый, к которому не поподключаешься особо, поэтому и спрашиваю, прокатит ли такая схема.


с ними? чтобы перед переносом системы на новое место они соответствовали,
хотя если переносится винчестер, то тут проще, стоит только обратить внимание на точное имя устройства или использовать uuid


>с ними? чтобы перед переносом системы на новое место они соответствовали,
хотя если переносится винчестер, то тут проще, стоит только обратить внимание на точное имя устройства или использовать uuid

Что-то у меня возникает ощущение, что проще оттарабанить комп на дачу, где стоит старый ЭЛТ-моник от него, поставить там сразу на него ось, поднять ssh и отнести обратно, без моника, конечно.


ты не задумывался как тогда все VPS-ы работают?

На VPS'ы не ставят Debian, так как всё ПО из репозиториев очень старо.


> На VPS'ы не ставят Debian

купи себе ip-kvm


>купи себе ip-kvm

А это идея. Хм, а сколько примерно он будет стоить? Видимо, мне один черт еще надо покупать винт ехать.


>На VPS'ы не ставят Debian, так как всё ПО из репозиториев очень старо.


>Эм.. ну ты понел =)


>Нищеброд детектед. :-)

Просто не вижу смысла ставить дома хреновину за 19 тыс.

Без видеокарты не запустится ни одна ОС, так как в этом случае компьютер просто напросто не включится.


>Без видеокарты не запустится ни одна ОС, так как в этом случае компьютер просто напросто не включится.

Наглое 4.2. А как по-твоему тестят мать?



Так что там с Debian без монитора? Поднялся? Расскажи как.

Откуда вы такие специалисты беретесь ?
Несколько лет два сервера без видеокарты и клавиатур работают.


>Откуда вы такие специалисты беретесь ? Несколько лет два сервера без видеокарты и клавиатур работают.

Эээ, да не вы чо не, запустится. Иксы на стандартных настройках не запустятся, а не ос.

А сервер странный какой-то, а как в настройки биоса залезть? Уж сколько лет на тех же пролиантах придумали как холодный старт делать по сети и систему удаленно ставить.


>Debian на сервер без монитора Сейчас нужно накатить мой любимый дебиан ленни, который я юзаю на всех своих серверах, на сервер, не имеющий монитора. По сему вижу такое решение проблемы - вытаскиваю винт, тащу его на работу, подтыкаю к рабочему компу и вкатываю туда полный дебиан ленни без иксов и графики. Сразу же поднимаю на нем ssh, засовываю демон ssh в rc-update и несу винт со свежеустановленным дебианом домой, где доблестно втыкаю его в роутер

Именно так я и делал, только дома. И сначала на арче, а потом перевел его на генту. Небольшие заморочки были с ключами, но решил быстро. А уж если зашел через SSH то полная свобода. Насчет железа сам думай, ядро предварительно собери да и все.


>Так что там с Debian без монитора? Поднялся? Расскажи как.

Да у меня руки никак не дойдут новый винт купить.

vlb> Несколько лет два сервера без видеокарты и клавиатур работают.

Конечно - это же специальные серваки, а не персональные компьютеры. В обычном компьютере BIOS начинает пищать, когда видеокарты нет.


В обычном компьютере BIOS начинает пищать, когда видеокарты нет.

Теперь подробнее опишу шаги, которые привели меня к успеху и, надеюсь, приведут в похожей ситуации и вас.

Первый этап

-f — проверять диск даже если он помечен как несодержащий ошибок
-y — отвечать «да» на все вопросы автоматически. То есть, просто исправлять все ошибки
-c — искать и помечать битые блоки диска. Для этих целей существует специальная утилита badblocks, но с помощью этой опции вы автоматически пересылаете ее отчет fsck.
Обратите внимание, что вы указываете не диск, а конкретный раздел на нем.
В моем случае проверка «умерла» на 20% выполнения из-за огромного числа ошибок, почему я и принял нехитрое решение создать в начале диска раздел объемом гигабайт 20 (этого более, чем достаточно для установки Debian). Для переразбивки диска удобно пользоваться утилитой cfdisk:

В интерактивном режиме вы просто нужным образом конфигурируете диск: я создал в начале диска primary-раздел размером 20 Гб, остальное место оставил пустым (а также заранее пометил его как bootable. Не забудьте перед выходом из программы записать изменения на диск). Затем создаем на нем файловую систему:

И снова проверяем, что все хорошо:

Второй этап

Предположим, VirtualBox у вас уже установлен. Тогда создадим vmdk-образ диска, в действительности отображающий все операции с ним на физический диск (предполагаем, что вы находитесь в удобной вам директории, например,

Теперь создадим новую виртуальную машину с именем «desktop»:

Выделим ей подходящий объем оперативной памяти:

Оборудуем контроллером для подлючения жестких дисков и CD/DVD-приводов:

И подключим наш внешний жесткий диск:

Для того, чтобы отключить диск (нам это еще не раз пригодится), нужно выбрать в качестве medium «ничто»:

Теперь пора задуматься, с чего мы будем ставить Debian. Я, при наличии нормального интернет-канала, выбрал «small installation image», вы, при желании, можете выкачать полноразмерный CD или даже DVD. Подробности здесь. Также из-за установки в виртуальной машине придется ограничиться i386-версией — 64-битные гости VirtualBox поддерживает только на хостах с поддержкой аппаратной виртуализации VT-x или AMD-V — этим могут похвастаться только не самые дешевые процессоры. Итак, пусть в текущем каталоге лежит iso-образ Debian, например, debian-6.0.5-i386-netinst.iso. Тогда по образу и подобию подключения жесткого диска подключим и его:

Можно запускать машину:

(часть этих действий можно выполнить и из графической оболочки VirtualBox. Только при ее запуске не забудьте, что машины по умолчанию создаются только для одного пользователя, потому запускайте графическую оболочку также от имени root. Под обычным пользователем выполнить все эти манипуляции вам удастся едва ли, поскольку для работы с жестким диском нужен привилегированный к нему доступ. Используйте sudo)
Теперь вам нужно пройти через все этапы инсталляции, указать пароли для root и пользователя, а также, и это критически важно, выбрать среди шаблонов инсталляции SSH-сервер. Из-за весьма шаткого состояния диска я при его разбивке минимизировал свои действия — примонтировал существующий раздел как / и не выделял swap-раздел — его можно подключить уже на целевой машине. После завершения установки можете еще поработать в системе, что-то настроить по вкусу, пока к ней есть доступ с клавиатуры и монитора, проверить, что все действительно загружается, отключив iso-образ и т.д.

Третий этап

На третьем этапе все, что нужно — это подключить внешний диск к целевой машине и включить ее. Мне на этом этапе помог роутер, потому что ip машины я подсмотрел на его статус-странице и открыл по этому адресу SSH-сессию с ноутбука:

У вас адрес машины скорее всего будет иным.

Четвертый этап

Если все получилось, осталось перенести систему с внешнего диска на внутренний. По поводу этого этапа существует особенно много мнений (в том числе не совсем верных), как его осуществлять, я предложу один. Во-первых, учитывая работу вслепую, будет очень полезно все, описанное в этом разделе, сначала проделать на ноутбуке в виртуальной машине. Следуя этому замечательному руководству и уже сделанным мной замечаниям, вы можете подключить к виртуальной машине «desktop» еще один, действительно виртуальный жесткий диск и, считая, что это внутренний диск целевой машины, потренироваться на нем. В конечном счете вы должны суметь отключить внешний диск и тем не менее загрузить с виртуального ваш Debian. Чтобы еще более приблизить обстановку к «боевой», можете из хост-машины (ноутбука) работать с виртуальной машиной по SSH. Для этого, например, можно оставить настройки сети (NAT) виртуальной машины по умолчанию, но перебросить порты:

(подробности здесь)
Теперь любое обращение к 2222 (номер произволен, но желательно, чтобы он превышал 1024 — по меньшим портам может обращаться только root) порту вашего ноутбука будет пересылаться на 22 порт (стандартный SSH) виртуальной машины. Можете открыть с хоста сессию:

(скорее всего, localhost ведет по адресу 127.0.0.1). Во-вторых, не стоит весь диск копировать с помощью dd, потому что это долго и не пройдет гладко в большинстве практически реализуемых случаев. Для копирования файловой системы вы можете использовать cp, rsync, но более всего подойдет специальная утилита dump/restore (работает крайне быстро и надежно), да и для восстановления порядка загрузки вы уж точно не отделаетесь копированием с помощью dd записи MBR — современный Debian использует grub2, который любит адресовать диски по уникальным номерам UUID — вы оставите в системе все ссылки на внешний жесткий диск.
Итак, необходимо проделать следующее (целевая машина загружена с внешнего диска, пусть он есть /dev/sda, внутренний диск — /dev/sdb, вы работаете с ноутбука по SSH):
Разбить с помощью cfdisk внутренний диск так же (или почти так же — раздел, в который будете копировать должен вместить предназначенные ему данные):

Создать на нем файловую систему:

И скопировать в нее файловую систему внешнего диска:

Теперь нужно сконфигурировать grub2. Сначала выполним chroot в скопированную файловую систему:

Теперь мы фактически находимся в окружении Debian на внутреннем диске целевой машины. Обновим конфигурацию жестких дисков (сейчас там мусор, оставленный виртуальной машиной):

— она автоматически запишется в файл /boot/grub/device.map. Обновим конфигурацию grub2:

Выполним его инсталляцию на внутренний диск:

(обратите внимание, вы указываете диск, а не раздел на нем)
И снова стоит обновить конфигурацию:

Теперь отменим chroot и выключим систему:

Теперь отключите внешний диск и запустите целевую машину снова. Вы должны вновь получить доступ к ней по SSH с ноутбука.
Теперь можно создать и подключить swap-раздел: выделите ему место с помощью cfdisk, затем выполните

(sync сбрасывает системные буферы)
возможно, завести раздел home и пр. (можно посмотреть здесь).
Система готова к работе.

Теперь подробнее опишу шаги, которые привели меня к успеху и, надеюсь, приведут в похожей ситуации и вас.

Первый этап

-f — проверять диск даже если он помечен как несодержащий ошибок
-y — отвечать «да» на все вопросы автоматически. То есть, просто исправлять все ошибки
-c — искать и помечать битые блоки диска. Для этих целей существует специальная утилита badblocks, но с помощью этой опции вы автоматически пересылаете ее отчет fsck.
Обратите внимание, что вы указываете не диск, а конкретный раздел на нем.
В моем случае проверка «умерла» на 20% выполнения из-за огромного числа ошибок, почему я и принял нехитрое решение создать в начале диска раздел объемом гигабайт 20 (этого более, чем достаточно для установки Debian). Для переразбивки диска удобно пользоваться утилитой cfdisk:

В интерактивном режиме вы просто нужным образом конфигурируете диск: я создал в начале диска primary-раздел размером 20 Гб, остальное место оставил пустым (а также заранее пометил его как bootable. Не забудьте перед выходом из программы записать изменения на диск). Затем создаем на нем файловую систему:

И снова проверяем, что все хорошо:

Второй этап

Предположим, VirtualBox у вас уже установлен. Тогда создадим vmdk-образ диска, в действительности отображающий все операции с ним на физический диск (предполагаем, что вы находитесь в удобной вам директории, например,

Теперь создадим новую виртуальную машину с именем «desktop»:

Выделим ей подходящий объем оперативной памяти:

Оборудуем контроллером для подлючения жестких дисков и CD/DVD-приводов:

И подключим наш внешний жесткий диск:

Для того, чтобы отключить диск (нам это еще не раз пригодится), нужно выбрать в качестве medium «ничто»:

Теперь пора задуматься, с чего мы будем ставить Debian. Я, при наличии нормального интернет-канала, выбрал «small installation image», вы, при желании, можете выкачать полноразмерный CD или даже DVD. Подробности здесь. Также из-за установки в виртуальной машине придется ограничиться i386-версией — 64-битные гости VirtualBox поддерживает только на хостах с поддержкой аппаратной виртуализации VT-x или AMD-V — этим могут похвастаться только не самые дешевые процессоры. Итак, пусть в текущем каталоге лежит iso-образ Debian, например, debian-6.0.5-i386-netinst.iso. Тогда по образу и подобию подключения жесткого диска подключим и его:

Можно запускать машину:

(часть этих действий можно выполнить и из графической оболочки VirtualBox. Только при ее запуске не забудьте, что машины по умолчанию создаются только для одного пользователя, потому запускайте графическую оболочку также от имени root. Под обычным пользователем выполнить все эти манипуляции вам удастся едва ли, поскольку для работы с жестким диском нужен привилегированный к нему доступ. Используйте sudo)
Теперь вам нужно пройти через все этапы инсталляции, указать пароли для root и пользователя, а также, и это критически важно, выбрать среди шаблонов инсталляции SSH-сервер. Из-за весьма шаткого состояния диска я при его разбивке минимизировал свои действия — примонтировал существующий раздел как / и не выделял swap-раздел — его можно подключить уже на целевой машине. После завершения установки можете еще поработать в системе, что-то настроить по вкусу, пока к ней есть доступ с клавиатуры и монитора, проверить, что все действительно загружается, отключив iso-образ и т.д.

Третий этап

На третьем этапе все, что нужно — это подключить внешний диск к целевой машине и включить ее. Мне на этом этапе помог роутер, потому что ip машины я подсмотрел на его статус-странице и открыл по этому адресу SSH-сессию с ноутбука:

У вас адрес машины скорее всего будет иным.

Четвертый этап

Если все получилось, осталось перенести систему с внешнего диска на внутренний. По поводу этого этапа существует особенно много мнений (в том числе не совсем верных), как его осуществлять, я предложу один. Во-первых, учитывая работу вслепую, будет очень полезно все, описанное в этом разделе, сначала проделать на ноутбуке в виртуальной машине. Следуя этому замечательному руководству и уже сделанным мной замечаниям, вы можете подключить к виртуальной машине «desktop» еще один, действительно виртуальный жесткий диск и, считая, что это внутренний диск целевой машины, потренироваться на нем. В конечном счете вы должны суметь отключить внешний диск и тем не менее загрузить с виртуального ваш Debian. Чтобы еще более приблизить обстановку к «боевой», можете из хост-машины (ноутбука) работать с виртуальной машиной по SSH. Для этого, например, можно оставить настройки сети (NAT) виртуальной машины по умолчанию, но перебросить порты:

(подробности здесь)
Теперь любое обращение к 2222 (номер произволен, но желательно, чтобы он превышал 1024 — по меньшим портам может обращаться только root) порту вашего ноутбука будет пересылаться на 22 порт (стандартный SSH) виртуальной машины. Можете открыть с хоста сессию:

(скорее всего, localhost ведет по адресу 127.0.0.1). Во-вторых, не стоит весь диск копировать с помощью dd, потому что это долго и не пройдет гладко в большинстве практически реализуемых случаев. Для копирования файловой системы вы можете использовать cp, rsync, но более всего подойдет специальная утилита dump/restore (работает крайне быстро и надежно), да и для восстановления порядка загрузки вы уж точно не отделаетесь копированием с помощью dd записи MBR — современный Debian использует grub2, который любит адресовать диски по уникальным номерам UUID — вы оставите в системе все ссылки на внешний жесткий диск.
Итак, необходимо проделать следующее (целевая машина загружена с внешнего диска, пусть он есть /dev/sda, внутренний диск — /dev/sdb, вы работаете с ноутбука по SSH):
Разбить с помощью cfdisk внутренний диск так же (или почти так же — раздел, в который будете копировать должен вместить предназначенные ему данные):

Создать на нем файловую систему:

И скопировать в нее файловую систему внешнего диска:

Теперь нужно сконфигурировать grub2. Сначала выполним chroot в скопированную файловую систему:

Теперь мы фактически находимся в окружении Debian на внутреннем диске целевой машины. Обновим конфигурацию жестких дисков (сейчас там мусор, оставленный виртуальной машиной):

— она автоматически запишется в файл /boot/grub/device.map. Обновим конфигурацию grub2:

Выполним его инсталляцию на внутренний диск:

(обратите внимание, вы указываете диск, а не раздел на нем)
И снова стоит обновить конфигурацию:

Теперь отменим chroot и выключим систему:

Теперь отключите внешний диск и запустите целевую машину снова. Вы должны вновь получить доступ к ней по SSH с ноутбука.
Теперь можно создать и подключить swap-раздел: выделите ему место с помощью cfdisk, затем выполните

(sync сбрасывает системные буферы)
возможно, завести раздел home и пр. (можно посмотреть здесь).
Система готова к работе.

Читайте также: