我尝试在全新的 HP ProLiant Gen8 服务器(4Gb RAM,处理器 - G1610T Intel Celeron G1610T - 2.3 GHz)上安装 Arch Linux (2017.04.01-x86_64),安装过程似乎已成功完成(按照 Arch 中的步骤进行) Linux 维基百科。
当我告诉服务器从 HDD 启动时,我看到错误“非系统磁盘或磁盘错误”。如果安装看起来很顺利,那么什么可能导致它失败?
以下是我为实现这一目标所采取的步骤。
- 插上服务器,三个硬盘:
- 750GB Western Digital HD(RAID 1 和 HD #2)
- 750GB Western Digital HD(RAID 1,HD #1)
- 80Gb eServer IBM HD
- 使用 rufus 将 Arch Linux iso 刻录到 MicroSD 上
- 将 MicroSD 插入服务器主板上的插槽
- 开机并选择从MicroSD启动
- 从 Arch Linux 屏幕中选择启动到 Arch Installer
fdisk -l
显示以下内容:
- 700G Linux raid(125M 未知,500M 交换)作为 /dev/sda
- 700G Linux raid(125M 未知,500M 交换)作为 /dev/sdb
- 75G exFat 作为 /dev/sdc(80GB 硬盘)
- 60G Fat32 作为 /dev/sdd (MicroSD)
我想将操作系统安装到 80GB 硬盘上,其中包含 5GB 交换空间、20GB 操作系统根分区、50GB /home 分区。
所以我用fdisk
fdisk /dev/sdc o # 清除分区表对/dev/sdc 进行分区
n # new partition
p # new partition is primary
1 # named partition number 1
<enter> # default start sector
+2G # end sector is 2GB after the start
t # change the type from default
82 # change partition type to 'swap'
n # new partition
p # new partition is primary
2 # named partition number 2
<enter> # default start sector
+20G # end sector is 20GB after the start
n # new partition
p # new partition is primary
3 # named partition number 3
<enter> # default start sector
<enter> # end sector is the rest of the disk
a # make a partition bootable
2 # make partition 2 bootable
w # write new partitions to disk
再次运行fdisk -l
似乎确认成功,/dev/sdc/
具有我期望的类型和大小的三个分区。
mkfs.ext4 /dev/sdc2 # put ext4 file system on root partition
mkfs.ext4 /dev/sdc3 # put ext4 file system on /home partition
mount /dev/sdc2 /mnt # mount partition 2 as root partition
mkdir /mnt/home # make a place for the home partition
mount /dev/sdc3 /mnt/home #mount partition 3 as home partition
- 我进行了编辑
/etc/pacman.d/mirrorlist
,将本地镜像放在列表中更高的位置。 - 安装了基本系统
pacstrap /mnt base
- 写入文件系统表
genfstab -L /mnt >> /mnt/etc/fstab
- Chroot 进入新系统
arch-chroot /mnt
- 将正确的本地时间符号链接到
/etc/localtime
- 同步时钟
hwclock --systohc
- 取消注释我的区域设置
/etc/locale.gen
- 然
locale-gen
- 设置我的
LANG
环境变量/etc/locale,conf
- 输入我的主机名
/etc/hostname
- 将我的主机名添加到
/etc/hosts
- 设置 root 密码
passwd
- 安装了 GRUB
pacman -S grub
- 安装 GRUB 到
/dev/sdc
grub-install --target=i386-pc /dev/sdc
grub-mkconfig -o /boot/grub/grub.cfg
- 留下 chroot 与
exit
- 卸载所有东西
unmount -R /mnt
- 关闭
- 移除了 MicroSD
- 已通电
- 选择从HD启动
不幸的是,这不起作用,我收到错误“非系统磁盘或磁盘错误”
我认为这可能与磁盘顺序有关,因此删除了两个 RAID 硬盘,并将 80GB 磁盘放入插槽 0 ( /dev/sda
)
我再次从 MicroSD 启动,并在 Arch Installer 中再次输入 chroot,并进行了这些更改。
- 安装的 Grub-BIOS 和内核标头
pacman -S openssh grub-bios linux-headers linux-lts linux-lts-headers
- 启用 sshd
systemctl enable sshd
- 然后重新运行安装 GRUB 的命令。
grub-install --target=i386-pc /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
重新启动给了我同样的错误,我在 Arch Linux Wiki 或 YouTube 教程中找不到更多帮助。
是什么可能导致安装过程看似顺利,但服务器却无法从硬盘启动?
/dev/sdc
难道是我安装的时候硬盘在插槽的问题?我后来移动它有问题吗?
答案1
您遇到磁盘枚举问题。
MicroSD 卡导致了您的问题,因为它改变了 SCSI 设备的顺序;可能占用了 /dev/sda。
确保您将引导加载程序写入正确的设备或者安装装船机前取出 MicroSD 卡或者尝试使用 ISO 映像通过 ILO 进行安装。
看: