美文网首页linux tools随笔-生活工作点滴
在移动硬盘上安装 ArchLinux

在移动硬盘上安装 ArchLinux

作者: 思想与地面的距离 | 来源:发表于2019-07-23 21:48 被阅读106次

    在移动硬盘上安装 ArchLinux

    参考:

    ArchLinux USB

    目标

    制作一个

    • 安装了可持续使用的,
    • 能与任何计算机最大程度兼容的,

    移动硬盘

    准备

    • 16G以上的移动硬盘用于安装ArchLinux
    • 8G的闪存用于制作启动闪存
    • 一台主机(台式或是笔记本)

    开工

    下载ArchLinux安装光盘镜像文件

    下载ArchLinux光盘镜像

    制作【启动闪存】

    Linux环境下

    #dd bs=4M if=/[路径]/archlinux.iso of=/dev/[目标闪存] status=progress && sync
    

    Windows环境下

    下载 Rufus 并安装,使用Rufus制作

    BIOS vs UEFI

    简单地说,BIOS和UEFI就是主板用来沟通操作系统和主板固件的2个不同的系统。

    • 旧的 # BIOS (basic input/output system)
    • 新的 # UEFI (unified extensible firmware interface)

    只有且仅有当主板的启动模式(BIOS或UEFI)和闪存的分区模式(BIOS或UEFI)是一致的时候,闪存才能被正确地启动。
    而闪存可以同时设置 BIOS 和 UEFI 两个不同分区用来启动闪存上的同一个操作系统。

    secure boot

    请进入主板菜单简单粗暴地关掉它。
    如果要使用secure boot,待续。。。

    启动【启动闪存】

    把【启动闪存】插到电脑USB口上并开机选择

    Boot Arch Linux (x64_86) or (i686)

    键盘布局和语言

    万恶的美帝,别无选择,US 和 en_US.UTF-8 UTF-8,默认值,不需要更改。

    链接网络

    测试

    # ping -c1 google.com
    

    有线网络

    查看

    # ip link
    

    启用ether接口

    # ip link set [ether接口的识别码 例如:eno1, eno0] up 
    

    获取IP地址

    # dhcpcd [ether接口的识别码 例如:eno1, eno0] 
    
    故障探测

    1.查看所有dhcpcd实例

    # systemctl list-units | grep dhcpcd
    

    2.查看dhcpcd实例服务的状态

    # systemctl status dhcpcd@[ether接口的识别码 例如:eno1, eno0].service
    

    无线网络

    选择一# 一步到位
    # wifi-menu
    
    选择二# 单步执行
    • 查看无线接口的内核驱动是否已经加载
    # lspci -k | grep -A3 'Network controller'
    
    • 如果内核驱动已经加载,查看无线接口的名称
    # iw dev
    
    • 启动无线接口
    # ip link set [wifiname] up
    
    • 扫描有效网络
    # iw dev [wifiname] scan | grep 'SSID:' 
    
    • 连接不加密无线网络
    # iw dev [wifiname] connect ['networkname']
    
    • 连接WPA/WPA2加密无线网络
    # wpa_supplicant -i [wifiname] -c <(wpa_passphrase ['networkname'] ['password']) 
    
    • 连接WEP加密无线网络
    # iw dev [wifiname] connect ['networkname'] key 0:['password']
    
    • 建立连接后,按 [ctrl] + z 并运行 bg 将进程分叉到后台。

    • 最后,尝试租用IP地址

    # dhcpcd [wifiname]
    
    • 确认网络连接成功
    # ping -c1 archlinux.org 
    

    更新系统时间

    # timedatectl set-ntp true
    

    准备安装ArchLinux的闪存

    如前文提到,这个在闪存上安装的ArchLinux是要同时兼容 BIOS 和 UEFI 两种启动模式。

    • BIOS模式要求存储器的前512个字节必须包含MBR。
    • UEFI模式要求有单独一个 ESP 分区。

    查看设备模块

    # lsblk 
    

    擦除移动硬盘上的数据(可选)

    # dd if=/dev/zero of=/dev/sdX bs=logical-sector-size seek=0 count=sectors status=progress
    

    分区

    # gdisk /dev/sdX
    

    输入 d 直到显示 No partitions,删除所有分区

    Command (? for help): d
    No partitions
    

    创建GUID分区表

    Command (? for help): o
    This option deletes all partitions and creates a new protective MBR.
    Proceed? (Y/N): y
    

    创建MBR分区

    Command (? for help): n
    Partition number (1-128, default 1):
    First sector (34-XXXXXX), default = 64) or {+-}size{KMGTP}: 
    Last sector (64-XXXXXX), default = XXXXXX) or {+-}size{KMGTP}: +10MB
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): EF02
    

    创建ESP分区

    Command (? for help): n
    Partition number (2-128, default 2):  
    First sector (34-XXXXXX), default = YYYY) or {+-}size{KMGTP}: 
    Last sector (64-XXXXXX), default = XXXXXX) or {+-}size{KMGTP}: +500MB
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): EF00 
    

    创建Linux root分区

    Command (? for help): n
    Partition number (3-128, default 3):
    First sector (34-XXXXXX), default = YYYY) or {+-}size{KMGTP}:  
    Last sector (64-XXXXXX), default = XXXXXX) or {+-}size{KMGTP}: 
    Current type is 'Linux filesystem' 
    Hex code or GUID (L to show codes, Enter = 8300): 
    

    查看所有分区并确认

    # Command (? for help): p
    

    把分区表写入移动硬盘

    Command (? for help): w
    

    格式化

    查看移动硬盘

    # lsblk /dev/sdX
    

    格式化ESP分区

    # mkfs.fat -F32 /dev/sdX2
    

    格式化Linux root分区

    # mkfs.ext4 /dev/sdX3
    

    安装基础包集

    挂载

    挂载Linux root分区

    # mkdir -p /mnt/usb 
    # mount /dev/sdX3 /mnt/usb
    

    挂载ESP分区

    # mkdir /mnt/usb/boot
    # mount /dev/sdX2 /mnt/usb/boot 
    

    pacstrap

    安装基础包

    # pacstrap /mnt/usb base base-devel
    

    fstab

    # genfstab -U /mnt/usb >> /mnt/usb/etc/fstab
    

    配置新系统

    chroot

    进入新系统

    # arch-chroot /mnt/usb
    

    locale 本地化设置

    使用Tab键选择[region]和[city]

    # ln -sf /usr/share/zoneinfo/[region]/[city] /etc/localtime
    

    设置 /etc/adjtime

    # hwclock --systohc
    

    编辑 /etc/locale.gen ,取消需要语言的注释符

    # nano /etc/locale.gen
    

    生产本地化信息

    # locale-gen 
    

    设置 LANG

    # echo LANG=[localeline] > /etc/locale.conf
    

    hostname

    # echo hostname > /etc/hostname
    
    # nano /etc/hosts
    
    127.0.1.1    hostname.localdomain    hostname
    

    RAM disk image

    为了永久地从USB设备启动Linux内核,可能需要对初始RAM磁盘映像进行一些调整。 在尝试加载文件系统之前,我们需要确保正确加载块设备支持。 这并不总是在通用Linux安装中配置RAM磁盘映像的方式,这可能是其他Linux USB安装中的一个故障点。 要配置自定义RAM磁盘映像,请在编辑器中打开 /etc/mkinitcpio.conf:

    # nano /etc/mkinitcpio.conf
    

    确认 block 在 filesystems 之前 并且在 udev 之后

    HOOKS=(base udev block filesystems keyboard fsck)
    

    如有更改需重新生产RAM磁盘映像

    # mkinitcpio -p linux
    

    network interface names

    Arch Linux的基本服务管理器systemd根据实际的设备硬件为网络接口分配可预测的名称。 这对于任何其他类型的安装来说都很棒,但是对于我们想要的便携式USB安装可能会带来一些问题。 要确保以太网和wifi接口始终分别命名为eth0和wlan0,请将Arch Linux USB恢复为传统设备命名:

    # ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
    

    日志设置

    如果移动硬盘够大,不需要修改

    # nano /etc/systemd/journald.conf
    
    Storage=volatile
    SystemMaxUse=16M
    

    引导程序

    安装程序包

    # pacman -S grub efibootmgr
    

    设置 GRUB 的 MBR/BIOS 启动模式

    # grub-install --target=i386-pc --boot-directory /boot /dev/sdX 
    

    设置 GRUB 的 UEFI 启动模式

    # grub-install --target=x86_64-efi --efi-directory /boot --boot-directory /boot --removable
    

    生成GRUB设置信息

    # grub-mkconfig -o /boot/grub/grub.cfg
    

    网络支持

    安装程序包 ifplugd IP地址自动续租

    # pacman -S ifplugd
    

    安装程序包用来提供wifi支持的命令行接口

    # pacman -S iw wpa_supplicant dialog 
    

    视频驱动程序

    # pacman -S xf86-video-ati xf86-video-intel xf86-video-nouveau xf86-video-vesa
    

    触摸板支持

    # pacman -S xf86-input-synaptics
    

    电池支持

    # pacman -S acpi
    

    设置root密码

    # passwd
    

    添加用户

    # useradd -m [user]
    # passwd [user]
    # echo '[user] ALL=(ALL) ALL' > /etc/sudoers.d/10-[user]  
    

    重启新系统

    退出新系统

    # exit 
    

    取消挂载

    # umount /mnt/usb/boot /mnt/usb
    

    关机

    # poweroff 
    

    移除【启动闪存】并重新开机,以root登录

    ifplugd有线网络设置

    # cp /etc/netctl/examples/ethernet-dhcp /etc/netctl/eth0-arch_usb 
    # systemctl start netctl-ifplugd@eth0.service
    # systemctl enable netctl-ifplugd@eth0.service
    

    wifi-menu无线网络设置

    # wifi-menu -o 
    

    同步网络时间

    # timedatectl set-ntp true
    

    退出

    # logout
    

    相关文章

      网友评论

        本文标题:在移动硬盘上安装 ArchLinux

        本文链接:https://www.haomeiwen.com/subject/zwbkkctx.html