Почему мой порт Ethernet иногда не работает?

Как говорит SimplySimon, Boot Repair иногда может исправить ситуацию после факта. Однако, чтобы понять, что происходит, есть два случая:

BIOS

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

Чтобы сделать компьютер загрузочным, установщик ОС должен быть способен для установки загрузчика в MBR. Тем не менее, некоторые установщики делают этот шаг необязательным, полагаясь на то, что пользователь узнает, когда уже установлен другой загрузчик. Microsoft всегда делала установку загрузчика в MBR не факультативным, а дистрибутивы Linux, ориентированные на менее опытных пользователей, в тот же самый путь шли по этому пути.

Конечным результатом этого является то, что последний Установленная вами ОС - это та, которая будет контролировать процесс загрузки, если только последняя установленная ОС не обеспечила контроль над загрузкой загрузчика на уровне эксперта. Если это не то, что вы хотели, переустановка загрузчика является единственным вариантом. Инструмент восстановления загрузки Ubuntu помогает автоматизировать эту задачу, но есть и другие способы сделать это.

BIOS

Новые компьютеры используют прошивку EFI, а не BIOS. (Тем не менее, разработчики и большинство пользователей продолжают использовать термин «BIOS» применительно к EFI. Это использование технически неверно, и IMHO способствует запутыванию недоразумений.) Эти компьютеры хранят загрузчики как обычные файлы в системном разделе EFI (ESP). Вы можете хранить столько загрузчиков, сколько хотите на ESP. Они упоминаются в записях NVRAM, созданных с помощью Linux efibootmgr или эквивалентов в других операционных системах.

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

На практике поведение EFI очень похоже на поведение BIOS: загрузчик последней установленной ОС имеет приоритет. Разница заключается в том, что для метода восстановления в EFI non требуется повторная установка загрузчика; для этого просто требуется использовать efibootmgr или какой-либо другой инструмент для изменения порядка загрузки. Утилита Boot Repair будет делать это, но она также делает много других вещей, некоторые из которых обычно не нужны и могут быть вредными в долгосрочной перспективе. Таким образом, я не большой поклонник Boot Repair на компьютерах на базе EFI. Если вам повезет, ваша прошивка предложит способ постоянной настройки порядка загрузки, но эта возможность относительно редка.

2
задан 19 October 2010 в 21:15

23 ответа

Звучит как ошибка.

Сначала остановите Network Manager: sudo service network-manager stop

Затем подключите кабель и поднимите интерфейс sudo ifconfig eth0 up и попросите его запросить новый dhcp lease sudo dhclient eth0 (я предполагаю, что это eth0, если не использовать правильное имя)

Это сработало? Если это так, укажите ошибку в Network Manager: ubuntu-bug -p network-manager

Если нет, попробуйте перезагрузить сетевой драйвер. Это должно имитировать перезагрузку порта Ethernet. Чтобы узнать свой драйвер, загляните в /etc/udev/rules.d/70-persistent-net.rules. Вы увидите несколько бит:

# PCI device 0x10ec:0x8136 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:f1:4c:01:94:3e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Поиск того, что соответствует имени вашего интерфейса , посмотрите, что находится в круглых скобках, где мой говорит r8169. Это имя вашего модуля.

sudo modprobe -r r8169 && sudo modprobe r8169

(заменив r8169 на имя вашего модуля) Повторите шаг dhclient. Если это сработало, я подозреваю, что это ошибка ядра. [F7]

3
ответ дан 26 May 2018 в 01:07
  • 1
    Я сделал первое, что у вас было, и я получил выше (я редактировал свой оригинальный пост). Во-вторых, у меня нет каталога / udev / в / usr /? Что это? – Oscar Godson 12 October 2010 в 21:36
  • 2
    Потому что я испортил, извините! Я имел в виду / etc / udev ... – maco 13 October 2010 в 21:25
  • 3
    Maco, im получая тот же результат. После этого (мой тоже r8169) я запустил sudo ifconfig eth0 вверх, и он сказал то же, что и раньше, «не может выделить память». то я сделал sudo dhclient eth0, и он дал мне вывод, который я вставил выше. Не уверен, что это помогает, но так как это происходит только тогда, когда я возвращаюсь домой, я подозреваю, что это происходит только тогда, когда я: использую ethernet, отключаю, подключаю Wi-Fi, отключаю Wi-Fi, затем подключаю Ethernet. Спасибо! Я действительно хочу, чтобы это сработало. Это PITA для перезагрузки каждое утро :) – Oscar Godson 15 October 2010 в 21:33
  • 4
    Каков результат работы free -m? Вы на самом деле потеряли память? – maco 16 October 2010 в 00:06
  • 5
    Хмм, похоже, мы что-то нашли: free -m output: pastebin.com/syX9jUx0 (думаю, это потому, что это 666?: P, но в первый раз, когда я побежал, у меня было всего 32 бесплатно!) Вот и все мои запущенные процессы: pastebin.com/DRVeMyht - Любые идеи? – Oscar Godson 18 October 2010 в 23:32

Звучит как ошибка.

Сначала остановите Network Manager: sudo service network-manager stop

Затем подключите кабель и поднимите интерфейс sudo ifconfig eth0 up и попросите его запросить новый dhcp lease sudo dhclient eth0 (я предполагаю, что это eth0, если не использовать правильное имя)

Это сработало? Если это так, укажите ошибку в Network Manager: ubuntu-bug -p network-manager

Если нет, попробуйте перезагрузить сетевой драйвер. Это должно имитировать перезагрузку порта Ethernet. Чтобы узнать свой драйвер, загляните в /etc/udev/rules.d/70-persistent-net.rules. Вы увидите несколько бит:

# PCI device 0x10ec:0x8136 (r8169) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:f1:4c:01:94:3e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Поиск того, что соответствует имени вашего интерфейса , посмотрите, что находится в круглых скобках, где мой говорит r8169. Это имя вашего модуля.

sudo modprobe -r r8169 && sudo modprobe r8169

(заменив r8169 на имя вашего модуля) Повторите шаг dhclient. Если это сработало, я подозреваю, что это ошибка ядра. [F7]

3
ответ дан 25 July 2018 в 23:07

Звучит как ошибка.

Сначала остановите Network Manager: sudo service network-manager stop

Затем подключите кабель и поднимите интерфейс sudo ifconfig eth0 up и попросите его запросить новый dhcp lease sudo dhclient eth0 (я предполагаю, что это eth0, если не использовать правильное имя)

Это сработало? Если это так, укажите ошибку в Network Manager: ubuntu-bug -p network-manager

Если нет, попробуйте перезагрузить сетевой драйвер. Это должно имитировать перезагрузку порта Ethernet. Чтобы узнать свой драйвер, загляните в /etc/udev/rules.d/70-persistent-net.rules. Вы увидите несколько бит:

# PCI device 0x10ec:0x8136 (r8169) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:f1:4c:01:94:3e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Поиск того, что соответствует имени вашего интерфейса , посмотрите, что находится в круглых скобках, где мой говорит r8169. Это имя вашего модуля.

sudo modprobe -r r8169 && sudo modprobe r8169

(заменив r8169 на имя вашего модуля) Повторите шаг dhclient. Если это сработало, я подозреваю, что это ошибка ядра. [F7]

3
ответ дан 27 July 2018 в 02:50

Звучит как ошибка.

Сначала остановите Network Manager: sudo service network-manager stop

Затем подключите кабель и поднимите интерфейс sudo ifconfig eth0 up и попросить его запросить новую dhcp lease sudo dhclient eth0 (я предполагаю, что это eth0, если не использовать правильное имя)

] Это сработало? Если это так, укажите ошибку в Network Manager: ubuntu-bug -p network-manager

Если нет, попробуйте перезагрузить сетевой драйвер. Это должно имитировать перезагрузку порта Ethernet. Чтобы узнать свой драйвер, зайдите в /etc/udev/rules.d/70-persistent-net.rules. Вы увидите некоторые биты типа:

  # Устройство PCI 0x10ec: 0x8136 (r8169  ) SUBSYSTEM == "net", ACTION == "add", DRIVERS == "? *", ATTR {address} == "00: f1: 4c: 01: 94: 3e", ATTR {dev_id} == "  0x0 ", ATTR {type} ==" 1 ", KERNEL ==" eth * ", NAME =" eth0 " 

Поиск того, что соответствует имени вашего интерфейса, посмотрите, что находится в нем в скобках, где мой говорит r8169. Это имя вашего модуля.

  sudo modprobe -r r8169 & amp; & amp; & amp; & amp;  sudo modprobe r8169  

(заменив r8169 на имя вашего модуля) Повторите шаг dhclient. Если это сработало, я подозреваю, что это ошибка ядра. ubuntu-bug -p linux

3
ответ дан 2 August 2018 в 04:27

Звучит как ошибка.

Сначала остановите Network Manager: sudo service network-manager stop

Затем подключите кабель и поднимите интерфейс sudo ifconfig eth0 up и попросить его запросить новую dhcp lease sudo dhclient eth0 (я предполагаю, что это eth0, если не использовать правильное имя)

] Это сработало? Если это так, укажите ошибку в Network Manager: ubuntu-bug -p network-manager

Если нет, попробуйте перезагрузить сетевой драйвер. Это должно имитировать перезагрузку порта Ethernet. Чтобы узнать свой драйвер, зайдите в /etc/udev/rules.d/70-persistent-net.rules. Вы увидите некоторые биты типа:

  # Устройство PCI 0x10ec: 0x8136 (r8169  ) SUBSYSTEM == "net", ACTION == "add", DRIVERS == "? *", ATTR {address} == "00: f1: 4c: 01: 94: 3e", ATTR {dev_id} == "  0x0 ", ATTR {type} ==" 1 ", KERNEL ==" eth * ", NAME =" eth0 " 

Поиск того, что соответствует имени вашего интерфейса, посмотрите, что находится в нем в скобках, где мой говорит r8169. Это имя вашего модуля.

  sudo modprobe -r r8169 & amp; & amp; & amp; & amp;  sudo modprobe r8169  

(заменив r8169 на имя вашего модуля) Повторите шаг dhclient. Если это сработало, я подозреваю, что это ошибка ядра. ubuntu-bug -p linux

3
ответ дан 4 August 2018 в 21:00

Звучит как ошибка.

Сначала остановите Network Manager: sudo service network-manager stop

Затем подключите кабель и поднимите интерфейс sudo ifconfig eth0 up и попросить его запросить новую dhcp lease sudo dhclient eth0 (я предполагаю, что это eth0, если не использовать правильное имя)

] Это сработало? Если это так, укажите ошибку в Network Manager: ubuntu-bug -p network-manager

Если нет, попробуйте перезагрузить сетевой драйвер. Это должно имитировать перезагрузку порта Ethernet. Чтобы узнать свой драйвер, зайдите в /etc/udev/rules.d/70-persistent-net.rules. Вы увидите некоторые биты типа:

  # Устройство PCI 0x10ec: 0x8136 (r8169  ) SUBSYSTEM == "net", ACTION == "add", DRIVERS == "? *", ATTR {address} == "00: f1: 4c: 01: 94: 3e", ATTR {dev_id} == "  0x0 ", ATTR {type} ==" 1 ", KERNEL ==" eth * ", NAME =" eth0 " 

Поиск того, что соответствует имени вашего интерфейса, посмотрите, что находится в нем в скобках, где мой говорит r8169. Это имя вашего модуля.

  sudo modprobe -r r8169 & amp; & amp; & amp; & amp;  sudo modprobe r8169  

(заменив r8169 на имя вашего модуля) Повторите шаг dhclient. Если это сработало, я подозреваю, что это ошибка ядра. ubuntu-bug -p linux

3
ответ дан 6 August 2018 в 04:32

Звучит как ошибка.

Сначала остановите Network Manager: sudo service network-manager stop

Затем подключите кабель и поднимите интерфейс sudo ifconfig eth0 up и попросить его запросить новую dhcp lease sudo dhclient eth0 (я предполагаю, что это eth0, если не использовать правильное имя)

] Это сработало? Если это так, укажите ошибку в Network Manager: ubuntu-bug -p network-manager

Если нет, попробуйте перезагрузить сетевой драйвер. Это должно имитировать перезагрузку порта Ethernet. Чтобы узнать свой драйвер, зайдите в /etc/udev/rules.d/70-persistent-net.rules. Вы увидите некоторые биты типа:

  # Устройство PCI 0x10ec: 0x8136 (r8169  ) SUBSYSTEM == "net", ACTION == "add", DRIVERS == "? *", ATTR {address} == "00: f1: 4c: 01: 94: 3e", ATTR {dev_id} == "  0x0 ", ATTR {type} ==" 1 ", KERNEL ==" eth * ", NAME =" eth0 " 

Поиск того, что соответствует имени вашего интерфейса, посмотрите, что находится в нем в скобках, где мой говорит r8169. Это имя вашего модуля.

  sudo modprobe -r r8169 & amp; & amp; & amp; & amp;  sudo modprobe r8169  

(заменив r8169 на имя вашего модуля) Повторите шаг dhclient. Если это сработало, я подозреваю, что это ошибка ядра. ubuntu-bug -p linux

3
ответ дан 7 August 2018 в 22:41

Звучит как ошибка.

Сначала остановите Network Manager: sudo service network-manager stop

Затем подключите кабель и поднимите интерфейс sudo ifconfig eth0 up и попросить его запросить новую dhcp lease sudo dhclient eth0 (я предполагаю, что это eth0, если не использовать правильное имя)

] Это сработало? Если это так, укажите ошибку в Network Manager: ubuntu-bug -p network-manager

Если нет, попробуйте перезагрузить сетевой драйвер. Это должно имитировать перезагрузку порта Ethernet. Чтобы узнать свой драйвер, зайдите в /etc/udev/rules.d/70-persistent-net.rules. Вы увидите некоторые биты типа:

  # Устройство PCI 0x10ec: 0x8136 (r8169  ) SUBSYSTEM == "net", ACTION == "add", DRIVERS == "? *", ATTR {address} == "00: f1: 4c: 01: 94: 3e", ATTR {dev_id} == "  0x0 ", ATTR {type} ==" 1 ", KERNEL ==" eth * ", NAME =" eth0 " 

Поиск того, что соответствует имени вашего интерфейса, посмотрите, что находится в нем в скобках, где мой говорит r8169. Это имя вашего модуля.

  sudo modprobe -r r8169 & amp; & amp; & amp; & amp;  sudo modprobe r8169  

(заменив r8169 на имя вашего модуля) Повторите шаг dhclient. Если это сработало, я подозреваю, что это ошибка ядра. ubuntu-bug -p linux

3
ответ дан 10 August 2018 в 10:47

Звучит как ошибка.

Сначала остановите Network Manager: sudo service network-manager stop

Затем подключите кабель и поднимите интерфейс sudo ifconfig eth0 up и попросить его запросить новую dhcp lease sudo dhclient eth0 (я предполагаю, что это eth0, если не использовать правильное имя)

] Это сработало? Если это так, укажите ошибку в Network Manager: ubuntu-bug -p network-manager

Если нет, попробуйте перезагрузить сетевой драйвер. Это должно имитировать перезагрузку порта Ethernet. Чтобы узнать свой драйвер, зайдите в /etc/udev/rules.d/70-persistent-net.rules. Вы увидите некоторые биты типа:

  # Устройство PCI 0x10ec: 0x8136 (r8169  ) SUBSYSTEM == "net", ACTION == "add", DRIVERS == "? *", ATTR {address} == "00: f1: 4c: 01: 94: 3e", ATTR {dev_id} == "  0x0 ", ATTR {type} ==" 1 ", KERNEL ==" eth * ", NAME =" eth0 " 

Поиск того, что соответствует имени вашего интерфейса, посмотрите, что находится в нем в скобках, где мой говорит r8169. Это имя вашего модуля.

  sudo modprobe -r r8169 & amp; & amp; & amp; & amp;  sudo modprobe r8169  

(заменив r8169 на имя вашего модуля) Повторите шаг dhclient. Если это сработало, я подозреваю, что это ошибка ядра. ubuntu-bug -p linux

3
ответ дан 13 August 2018 в 17:21
  • 1
    Я сделал первое, что у вас было, и я получил выше (я редактировал свой оригинальный пост). Во-вторых, у меня нет каталога / udev / в / usr /? Что это? – Oscar Godson 12 October 2010 в 21:36
  • 2
    Потому что я испортил, извините! Я имел в виду / etc / udev ... – maco 13 October 2010 в 21:25
  • 3
    Maco, im получая тот же результат. После этого (мой тоже r8169) я запустил sudo ifconfig eth0 вверх, и он сказал то же, что и раньше, «не может выделить память». то я сделал sudo dhclient eth0, и он дал мне вывод, который я вставил выше. Не уверен, что это помогает, но так как это происходит только тогда, когда я возвращаюсь домой, я подозреваю, что это происходит только тогда, когда я: использую ethernet, отключаю, подключаю Wi-Fi, отключаю Wi-Fi, затем подключаю Ethernet. Спасибо! Я действительно хочу, чтобы это сработало. Это PITA для перезагрузки каждое утро :) – Oscar Godson 15 October 2010 в 21:33
  • 4
    Каков результат работы free -m ? Вы на самом деле потеряли память? – maco 16 October 2010 в 00:06
  • 5
    – Oscar Godson 18 October 2010 в 23:32

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 26 May 2018 в 01:07

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 26 May 2018 в 01:07

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 26 May 2018 в 01:07

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 26 May 2018 в 01:07

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 26 May 2018 в 01:07

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 26 May 2018 в 01:07

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 25 July 2018 в 23:07

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 27 July 2018 в 02:50

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 2 August 2018 в 04:27

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 4 August 2018 в 21:00

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 6 August 2018 в 04:32

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 7 August 2018 в 22:41

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 10 August 2018 в 10:47

У меня такая же проблема. Работа беспроводной сети при загрузке при условии, что маршрутизатор включен заранее. Если это не так, я должен снова пройти процесс создания сети. Проводное соединение отказывается работать вообще с ifconfig: SIOCSIFFLAGS: Невозможно выделить память вверх. Нотабене Это использует BrowserLinux (на основе Puppy Linux)

0
ответ дан 13 August 2018 в 17:21

Другие вопросы по тегам:

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