首页 > 其他分享 >在没有显示器和键盘的无头服务器上安装Debian

在没有显示器和键盘的无头服务器上安装Debian

时间:2024-12-15 15:10:59浏览次数:3  
标签:grub -- 服务器上安装 键盘 efi live 服务器 安装 Debian

本文记录了用LAN+ssh远程安装Linux系统的过程及方法

基本原理就是ssh远程登录服务器+debootstrap安装Debian系统

本文记录的过程和命令比较简略,建议有一定linux基础的同学阅读

还有一种给服务器安装系统的方法是把系统装进服务器硬盘,再把硬盘装到服务器上,这里我没研究

所需工具及基本要求

  • 服务器有USB接口
  • 可以让服务器和电脑处于同一个局域网下,并且可以连接互联网
  • 电脑上安装了Linux系统,或者有虚拟机、wsl,因为需要定制debian live u盘
  • 至少2GB的u盘
  • 服务器支持uefi启动(我不会用BIOS模式引导系统..)

如果你的服务器硬盘上面有操作系统,而且BIOS里设置的是优先从硬盘启动而不是u盘,那你还是找一张亮机卡把服务器接到显示器上装系统吧。当然如果你的硬盘支持热拔插也可以先拔掉,在u盘里的live系统启动之后再插上。总之需要能从u盘启动

制作启动u盘

原版debian live镜像

方法一:去官方下载standard live iso,这里用standard版的原因是没有桌面环境,体积比较小方便操作
方法二:自己制作(比较麻烦):我自己研究的方法

修改原版镜像

下面这一部分和上面我写的另一篇文章非常像,就是多了ssh的配置,不懂的可以参考那个

  1. 解压iso文件(7z命令)
  2. 解压[iso文件解压目录]/live/filesystem.squashfs(unsquashfs命令)
  3. 挂载chroot需要的文件系统:
mount --bind /sys/ $chroot_dir/sys/ #$chroot_dir是解压之后的squashfs目录
mount --bind /proc/ $chroot_dir/proc/
mount --bind /dev/ $chroot_dir/dev/
mount --bind /dev/pts/ $chroot_dir/dev/pts/
  1. chroot进入解压的squashfs文件系统
  2. 换源,编辑解压的文件系统里的/etc/apt/sources.list
  3. 创建用户(/sbin/adduser,直接adduser不行因为root的环境变量里没有sbin),并visudo添加到sudoers,主要是因为root用户用起来太不方便了;创建完别忘了passwd修改密码,还有root密码最好也改一下
  4. su到刚才创建的用户
  5. apt update,然后apt install装系统必须的软件包:sudo network-manager openssh-server grub-efi debootstrap PS:理论上只安装network-manageropenssh-server,其他的到服务器上再安装也行
  6. 安装其他可选软件包(主要为了丰富启动u盘的功能)
neovim #编辑器
ntfs-3g #NTFS支持
btrfs-progs #Btrfs支持
smartctl #硬盘smart支持,我是用于检查机械硬盘损坏情况
pigz #多线程gz压缩
bash-completion #bash代码补全
htop #任务管理器
udisks2 #用来"弹出"u盘
  1. 安装linux内核镜像:比如我安装的是linux-image-amd64
  2. 复制initrd.imgvmlinuz到iso文件解压目录下面的live,替换掉原来的initrd和linux镜像
  3. 编辑[iso文件解压目录]/boot/grub/grub.cfg,在你需要的grub启动选项后面加上live-config.noautologin live-config.nocomponents=openssh-server,目的是阻止原版的live镜像自动登录,并且防止它禁用ssh密码登录
  4. mksquashfs打包filesystem.squashfs,替换掉原来的
  5. 在你的u盘里找(或者新建)一个fat32分区,把刚才修改好的iso文件内容复制进去,这样就可以当uefi启动u盘了,不用全部复制,我复制的文件如下
main@n960kp:/run/media/main/debssh$ ls -R
.:
boot  EFI  efi.img  live  tools

./boot:
grub

./boot/grub:
config.cfg  grub.cfg     install_start.cfg  loopback.cfg  theme.cfg
efi.img     install.cfg  live-theme         splash.png    unicode.pf2

./boot/grub/live-theme:
theme.txt

./EFI:
boot

./EFI/boot:
bootx64.efi  grubx64.efi

./live:
filesystem.squashfs  initrd.img  vmlinuz

./tools:
loadlin.exe  loadlin.txt

安装服务器系统

  1. 把u盘插服务器上,服务器用网线和路由器/光猫之类的连上,保证电脑能访问到它
  2. 在电脑上用ssh登录服务器系统

安装

具体安装过程比较长,可以类比Arch Linux的安装,我发现Debian也有官方教程,另外Arch Linux中文版安装教程

注意下面几点

  • debootstrap时选择国内镜像
  • 安装grub时别用Debian官方教程里的grub-pc,用刚才安装好的grub-efi,因为需要uefi启动,我用的安装grub的命令大概长这样grub-install --target=x86_64-efi --efi-directory=/boot/efi,记得chroot到服务器硬盘里的系统之前先mount一下EFI分区
  • 有的主板不会自动识别EFI分区下的.efi引导文件(比如我的),导致重启之后进不去系统,或者就是你有显示器的话在BIOS里找不到Debian启动选项,需要用efibootmgr手动创建uefi启动条目,我的命令大概长这样efibootmgr --create --label "Debian" --loader /EFI/debian/grubx64.efi,直接输入efibootmgr会列出当前主板保存的启动选项,创建之后就有了;这里注意,这个命令要在u盘的live系统里运行,我在chroot到硬盘里的系统之后运行会提示efivar不可用
  • 安装好系统之后别忘了安装并开启ssh服务

标签:grub,--,服务器上安装,键盘,efi,live,服务器,安装,Debian
From: https://www.cnblogs.com/elight2/p/18583768

相关文章

  • 键盘录入学生信息到集合
    1.要求:思路:题目要求我们要录入三个学生对象,我们可以先完成一次学生录入,再使用三次循环即可完成三次学生录入第一步,写好学生类第二步,创建集合,用于储存学生对象第三步,使用键盘录入学生信息注意,因为有数字要录入,所以这里录入字符串要选择next()第四步,创建学生对象,将键盘录入好......
  • 7、C语言-标识符、键盘录入scanf
    变量名命名规则由数字、字母、下划线_组成不能以数字开头不能是关键字(如if等)严格区分大小写建议变量名尽量都小写用英文单词,做到见名知意代码文件名尽量都小写键盘录入scanfscanf,是scannerformat的缩写、是C语言提供的一个函数作用:获取用户在键盘上......
  • linux 家族debian和CentOS
    1、两者的来源2、两者的区别debian德班和CentOS是Linux里两个著名的版本。两者的包管理方式不同。debian安装软件是用apt(apt-getinstall),而CentOS是用yumdebian下的包扩展名是.deb,CentOS下包扩展名是.rpmdebian系列中最出名的是Ubuntu。Ubuntu专注于图形化界面操作,努力使得......
  • [Linux]Debian 12安装docker
    参考官网:https://docs.docker.com/engine/install/debian/forpkgindocker.iodocker-docdocker-composepodman-dockercontainerdrunc;dosudoapt-getremove$pkg;done#AddDocker'sofficialGPGkey:sudoapt-getupdatesudoapt-getinstallca-certif......
  • 2024-12-12 Respeak 4mic 安装在Raspberry Debian 12 bookworm
    2024-12-12Respeak4mic安装在RaspberryDebian12bookworm官方驱动不支持后续的linux内核,旧版本不太好用,所以不能用官方的版本驱动大致步骤可以参照官网1.驱动安装先查看内核是6.6uname-r sudoapt-getupdate gitclonehttps://github.com/HinTak/seeed-vo......
  • 在离线的linux服务器上安装pm2
    PM2使用笔记1.本地安装PM2#在项目目录下安装npminstallpm2--save#--save可省略,npm5+默认会保存到dependencies2.配置package.json的scripts{"scripts":{//基础命令 //如果你要启动的是app.js这个文件"start":"pm2startapp.js--namemyapp",......
  • 在 Debian 中使用 APT 包管理工具通过 Ubuntu PPA 安装最新软件包
    在Debian中使用APT包管理工具通过UbuntuPPA安装最新软件包Neovim0.10.0在24年5月发布了.考虑许久后笔者决定试着从Vim9转向Neovim.其中遇到的第一个问题是,Debian的默认源里只有Neovim0.7.7,因此寻找下载最新软件包的方法,并做下详细记录.虽然本文初衷......
  • 如何关闭HTML页面在IOS下的键盘首字母自动大写?
    在iOS上关闭HTML页面键盘首字母自动大写,你可以使用autocapitalize属性并将其设置为off。这适用于所有支持该属性的HTML输入元素,例如<input>,<textarea>等。以下是如何操作的示例:<inputtype="text"autocapitalize="off"placeholder="输入文本"><textareaautoc......
  • DeBian系统部署思源笔记
    引言该过程参考于以下文章:思源笔记docker部署解决docker镜像仓库下载慢安装docker检查docker是否安装检查服务器系统内是否安装了docker:docker--version若未安装docker,则显示如下命令:-bash:docker:commandnotfound安装docker操作切换清华镜像源:sudo......
  • Debian 网卡重启失败 修复记录
    给 Debian增加了ipv6之后,servicenetworkingrestart失败,网卡丢失。nano/etc/network/interfacesifaceens18inet6staticaddress2a10:cc40:233:136::1netmask64gateway2a10:cc40:233::1#gateway fe80::1重启网卡后网卡丢失root@vps-2299......