GRUB не загрузится, живые CD также

Существует несколько возможностей, в зависимости от того, как Вы хотите решить, какие пакеты идут где. Большинство из них потребует некоторого понимания того, как сети TCP/IP работают в Linux. Основные инструменты, которые необходимо будет знать, чтобы сделать сложные вещи, iptables (Ubuntu: iptables Install iptables) и iproute2 (ip команда) (Ubuntu: iproute Install iproute, iproute-документ Install iproute-doc).

Если можно различить полностью целевым IP-адресом, это просто: направьте IP-адреса согласно своим пожеланиям. Например, следующие команды заставят все пакеты для 1.2.3.x и 1.2.4.2 идти через ppp0, и другие пакеты для движения через eth0.

route add -net 1.2.3.4/24 ppp0
route add -host 1.2.4.2 ppp0
route add -net 0.0.0.0/0 eth0

Для более сложных требований необходимо начать использовать iptables и ip route. Например, следующие команды настраивают таблицы специальной маршрутизации так, чтобы все пакеты отметили 1, выходят через eth0 и все пакеты отметили 2, выходят через ppp0 (за исключением того, что пакеты предназначили для localhost придерживайтесь петлевого интерфейса).

ip rule add fwmark 1 table 1
ip route add 127.0.0.0/0 table 1 dev lo
ip route add 0.0.0.0/0 table 1 dev eth0
ip rule add fwmark 2 table 2
ip route add 127.0.0.0/8 table 2 dev lo
ip route add 0.0.0.0/0 table 2 dev ppp0

Теперь можно использовать iptables для “искажения” исходящих пакетов добавляя метку, которая решит то, что направляет, они берут. Например, вот то, как отправить весь исходящий трафик SMTP (порт 25) через eth0, и весь трафик, порожденный приложением, работающим как пользователь proxy через ppp0.

iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 1
iptables -t mangle -A OUTPUT -m owner --uid-owner proxy -j MARK --set-mark 2

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


Необходимо будет принять меры, чтобы эти команды работали, когда оба интерфейса будут соединены. Я рекомендую записать названный сценарий /etc/network/if-up.d/0justin-routes это выполняет команды, которые Вы хотите. Этот сценарий будет выполняться каждый раз, когда сетевой интерфейс поднят; поскольку его имя начинается с a 0 это будет работать рано в том процессе перед специализированной установкой, которая могла бы ожидать, что маршруты будут существовать. Существует симметричное /etc/network/if-down.d/ в случае, если Вы также хотите сделать вещи, когда один из интерфейсов снижается. (Все связанные маршруты будут автоматически стерты, который может оставить некоторые пакеты скрученными, когда Вы хотели бы, чтобы они отступили к другому интерфейсу.)

ifup сценарии документируются в interfaces(5) man page. Главное знать состоит в том, что название поднимаемого интерфейса или вниз находится в environement переменной IFACE. Можно узнать, является ли другой интерфейс уже с if ifconfig | sed 's/ .*//' | grep -Fqx 'eth0'; then ….

2
23.08.2011, 19:18
1 ответ

Это походит на проблему жесткого диска мне также. Возможно, что это - Ваш контроллер, а не диск (хотя плохой контроллер, вероятно, повредит диск также.

Необходимо попытаться загрузиться до LiveCD без соединенного жесткого диска. Если это работает, это - просто ДЕЙСТВИТЕЛЬНО неисправный диск. В противном случае или контроллер или BIOS имеют проблемы. Попытайтесь высветить последний BIOS и сбросить заводские настройки, затем пробуя к LiveCD снова.

1
27.01.2020, 22:24
  • 1
    BIOS очень вряд ли вызовет такие проблемы. Если бы это был поврежденный BIOS, то проблемы внезапно начались бы. Также это почти наверняка отобразило бы ошибку контрольной суммы и останов в том сообщении. –  rozcietrzewiacz 24.08.2011, 00:07

Теги

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