linux tools随笔-生活工作点滴

在移动硬盘上安装 ArchLinux

2019-07-23  本文已影响106人  思想与地面的距离

在移动硬盘上安装 ArchLinux

参考:

ArchLinux USB

目标

制作一个

移动硬盘

准备

开工

下载ArchLinux安装光盘镜像文件

下载ArchLinux光盘镜像

制作【启动闪存】

Linux环境下

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

Windows环境下

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

BIOS vs UEFI

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

只有且仅有当主板的启动模式(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_supplicant -i [wifiname] -c <(wpa_passphrase ['networkname'] ['password']) 
# iw dev [wifiname] connect ['networkname'] key 0:['password']
# dhcpcd [wifiname]
# ping -c1 archlinux.org 

更新系统时间

# timedatectl set-ntp true

准备安装ArchLinux的闪存

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

查看设备模块

# 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
上一篇 下一篇

猜你喜欢

热点阅读