![安装 BSD 后,新 Linux 安装中没有定义接口](https://linux22.com/image/1324710/%E5%AE%89%E8%A3%85%20BSD%20%E5%90%8E%EF%BC%8C%E6%96%B0%20Linux%20%E5%AE%89%E8%A3%85%E4%B8%AD%E6%B2%A1%E6%9C%89%E5%AE%9A%E4%B9%89%E6%8E%A5%E5%8F%A3.png)
几个月前,我尝试在笔记本电脑上安装 PCBSD(编辑:Thinkpad T420)。安装之前,我的分区包括 /swap、/ 和 /home,用于安装 Arch Linux,还有一个专门为 BSD 实验保留的额外空分区。在我尝试安装 BSD 之前,一切都运行良好。安装完成,但启动系统失败。引导加载程序只列出了无法运行的 BSD,所以我像冠军一样放弃了,将 Ubuntu 安装在了备用分区中。我注意到没有可用的网络接口,但由于无线网卡需要特定的驱动程序,而我又没有连接到以太网,所以我没怎么在意。回想起来,这应该引起一些警惕;我选择 Ubuntu 是因为它对许多专有驱动程序的开箱即用支持。尽管如此,我重新启动了 Arch 系统,几个月来一切都运行正常。
几天前,我决定更新 Arch Linux,而没有先查看网站。长话短说,glibc 上的 --force 更新使我的系统无法使用。啊,好吧,又学到了一个教训。该重新安装了……
我发现问题就在这里。我启动了一张旧的 Arch Linux CD,并尝试配置无线以供安装期间使用。我已在此机器上多次安装此设备,因此尽管我没有写下确切的步骤,但使用初学者指南和我以前的经验应该足以帮助我完成此操作。第一步,使用 iwconfig 列出可用接口。列出的唯一接口是环回 (?!?)。现在标志已上升,因为我知道以太网 (eth0) 和无线 (wlan0) 至少在之前列出,即使之前无法运行。起初,我将其归咎于我最近的失误,即 glibc 更新。担心硬件本身可能已损坏,我安装了 Windows 和(经过一些头痛之后)驱动程序。一切都按预期运行;硬件处于原始状态。
经过一番谷歌搜索,我发现 BSD 根据设备来命名其接口。我终于坐下来,拿出 PCBSD 安装盘,开始安装并运行。以太网(名为 em0)工作正常。无线需要一个内核模块,我怀疑 BSD 可能还没有提供该模块,而且英特尔显卡似乎不受支持(PCBSD 不支持,也许是 FreeBSD 不支持?没关系,只是解释了为什么我不能将此安装用于主操作系统)。
重新启动 Arch Linux live cd 并检查 /dev 的内容。那里没有名为 emx 的东西,我找不到任何表明接口隐藏存在的东西。我不相信 BSD 的设备命名方案会以这种方式影响硬件,但我想不出任何其他会导致此问题的原因。我真的被难住了。
我认为自己是一个称职的 Linux 用户,不是专家,但也不是菜鸟。至于 BSD,我比新手还差,因为我带着我对 Linux 的先入之见(因此需要进行实验;阅读文档固然很好,但如果不亲自动手,就什么也学不会)。这是我有史以来第一次在任何网站上发布问题。在此之前,我从未遇到过未记录的问题,无论是在交易所、其他论坛还是某个 wiki 上。我希望这不是一个愚蠢的简单修复,因为我讨厌浪费别人的时间,但我确实希望有一个修复。我更喜欢 *nix 系统;Windows 对我来说并不合适,而且我从来没有在 vm 中感到自在。
我发誓我已经用谷歌搜索过了,我会用链接来证明这一点,但我没有找到任何与我的问题相关的内容。例如,为什么安装 Ubuntu 后我的网络接口被重命名了,如何将它们重命名?处理重命名但仍可用的接口。我的接口已经完全消失了。
标准问答让我知道我还能提供什么:
使用 Linux Mint Live CD 执行(在我的问题出现之前,这已经列出了 eth0 和 wlan0,各个发行版的输出是相同的):
$ iwconfig
lo no wireless extensions.
$ ifconfig -a #(编辑:添加了 -a 开关;有/无结果相同)
lo link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:480 (480.0 B) TX bytes:480 (480.0 B)
$ lspci | grep -i net #(所以设备确实存在于某处,对吗?)
00:19.0 Ethernet controller: Intel Corporation Device 1502 (rev 04)
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8176 (rev 01)
使用 PCBSD 9.0 安装执行:
$ifconfig
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC>
ether 00:21:cc:6a:ff:b4
inet6 fe80::221:ccff:fe6a:ffb4%em0 prefixlen 64 scopeid 0x1
nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
media: Ethernet autoselect
status: no carrier
fwe0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 02:21:cc:0f:5e:bd
inet6 fe80::21:ccff:fe0f:5ebd%fwe0 prefixlen 64 scopeid 0x3
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
ch 1 dma 0
fwip0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
lladdr 0.21.cc.20.6.f.5e.bd.a.2.ff.fe.0.0.0.0
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
inet 127.0.0.1 netmask 0xff000000
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
$pciconf
hostb0@pci0:0:0:0: class=0x060000 card=0x21ce17aa chip=0x01048086 rev=0x09 hdr=0x00
vendor = 'Intel Corporation'
device = '2nd Generation Core Processor Family DRAM Controller'
class = bridge
subclass = HOST-PCI
vgapci0@pci0:0:2:0: class=0x030000 card=0x21ce17aa chip=0x01268086 rev=0x09 hdr=0x00
vendor = 'Intel Corporation'
device = '2nd Generation Core Processor Family Integrated Graphics Controller'
class = display
subclass = VGA
none0@pci0:0:22:0: class=0x078000 card=0x21ce17aa chip=0x1c3a8086 rev=0x04 hdr=0x00
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family MEI Controller'
class = simple comms
em0@pci0:0:25:0: class=0x020000 card=0x21ce17aa chip=0x15028086 rev=0x04 hdr=0x00
vendor = 'Intel Corporation'
device = '82579LM Gigabit Network Connection'
class = network
subclass = ethernet
ehci0@pci0:0:26:0: class=0x0c0320 card=0x21ce17aa chip=0x1c2d8086 rev=0x04 hdr=0x00
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family USB Enhanced Host Controller'
class = serial bus
subclass = USB
hdac0@pci0:0:27:0: class=0x040300 card=0x21ce17aa chip=0x1c208086 rev=0x04 hdr=0x00
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family High Definition Audio Controller'
class = multimedia
subclass = HDA
pcib1@pci0:0:28:0: class=0x060400 card=0x21ce17aa chip=0x1c108086 rev=0xb4 hdr=0x01
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family PCI Express Root Port 1'
class = bridge
subclass = PCI-PCI
pcib2@pci0:0:28:1: class=0x060400 card=0x21ce17aa chip=0x1c128086 rev=0xb4 hdr=0x01
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family PCI Express Root Port 2'
class = bridge
subclass = PCI-PCI
pcib3@pci0:0:28:3: class=0x060400 card=0x21ce17aa chip=0x1c168086 rev=0xb4 hdr=0x01
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family PCI Express Root Port 4'
class = bridge
subclass = PCI-PCI
pcib4@pci0:0:28:4: class=0x060400 card=0x21ce17aa chip=0x1c188086 rev=0xb4 hdr=0x01
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family PCI Express Root Port 5'
class = bridge
subclass = PCI-PCI
ehci1@pci0:0:29:0: class=0x0c0320 card=0x21ce17aa chip=0x1c268086 rev=0x04 hdr=0x00
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family USB Enhanced Host Controller'
class = serial bus
subclass = USB
isab0@pci0:0:31:0: class=0x060100 card=0x21ce17aa chip=0x1c4f8086 rev=0x04 hdr=0x00
vendor = 'Intel Corporation'
device = 'QM67 Express Chipset Family LPC Controller'
class = bridge
subclass = PCI-ISA
ahci0@pci0:0:31:2: class=0x010601 card=0x21ce17aa chip=0x1c038086 rev=0x04 hdr=0x00
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller'
class = mass storage
subclass = SATA
none1@pci0:0:31:3: class=0x0c0500 card=0x21ce17aa chip=0x1c228086 rev=0x04 hdr=0x00
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family SMBus Controller'
class = serial bus
subclass = SMBus
none2@pci0:3:0:0: class=0x028000 card=0x819510ec chip=0x817610ec rev=0x01 hdr=0x00
vendor = 'Realtek Semiconductor Co., Ltd.'
device = 'RTL8188CE 802.11b/g/n WiFi Adapter'
class = network
none3@pci0:13:0:0: class=0x088001 card=0x21ce17aa chip=0xe8231180 rev=0x05 hdr=0x00
vendor = 'Ricoh Co Ltd'
class = base peripheral
fwohci0@pci0:13:0:3: class=0x0c0010 card=0x21ce17aa chip=0xe8321180 rev=0x04 hdr=0x00
vendor = 'Ricoh Co Ltd'
device = 'FireWire Host Controller'
class = serial bus
subclass = FireWire
感谢您的时间!
答案1
这真是太尴尬了。解决办法是使用更新的内核。
BSD 只是个幌子。我以为,由于我使用的是之前可以正常工作的实时/安装磁盘(我最初就是从这些磁盘安装的),所以错误不可能与这些介质有关;BSD 是我唯一不寻常的举动。
我下载了最新的 Arch Linux 并启动。一切都如预期的那样。我仍然不知道这是怎么发生的。9 个月前我买了这台笔记本电脑时,内核 2.6.3x 运行良好。我定期运行更新,当我的系统崩溃时,我已经升级到 3.2 了。这意味着新内核以某种方式修改了某些东西,阻止旧内核识别硬件。这令人失望,因为如果我想安装旧版本的 Linux(幸好我没有),我不能。这确实意味着如果我需要互联网访问,我的活动磁盘集合将不再可用作恢复磁盘。
如果我应该以任何方式修改问题,请告诉我。我不确定接下来该做什么。
谢谢您的帮助 :)