arch linux简介
arch linux(或称arch)是一种以轻量简洁为设计理念的linux发行版。其开发团队秉承简洁、优雅、正确和代码最小化的设计宗旨。arch linux 项目受 crux 启发,由 judd vinet 于2002年启动。
arch linux是起源于加拿大的一份致力于使用简单、系统轻量、软件更新速度快的gnu/linux发行版。创始人judd vinet出于对debian以及red hat的包管理器不满,以及受crux影响而创立。最初针对i686,但是如今对x86_64也支持良好,而且还派生出了针对arm平台的arch linux arm以及针对hurd内核的arch hurd(发展缓慢)。
arch linux 将简洁定义为:避免任何不必要的添加、修改和复杂增加。它提供的软件都来自原始开发者((上游),仅进行和发行版(下游)相关的最小修改。
不包含上游不愿意接受的补丁。绝大部分 arch 下游补丁都已经被上游接受,下一个正式版本里会包含。
配置文件也是来自上游,仅包含发行版必须的调整,比如特殊的文件系统路径变动。arch 不会在安装一个软件包后就自动启动服务。
软件包通常都和一个上游项目直接对应。仅在极少数情况下才会拆分软件包。
arch尽全力保持软件处于最新的稳定版本,只要不出现系统软件包破损,都尽量用最新版本。arch采用滚动升级策略,安装之后可以持续升级,无需重装。只敲一个命令,arch就可以保持最新。
arch向gnu/linux用户提供了许多新特性,包括systemd初始化系统、现代的文件系统(ext2/3/4、reiser、xfs、jfs、btrfs)、lvm2/evms、软件磁盘阵列(软raid)、udev支持、initcpio(附带mkinitcpio)以及最新的内核。
基本系统安装
本想使用 gpt 分区表,查了一些资料, 为了使这个u盘在 bios 和 uefi 电脑上都能用, 需要创建一个 bios boot 分区,2m 大小足够,位置尽量靠前。 多系统的话还要创建一个 200m 的 efi system partition(esp) 分区。 这些都不是问题,但实际做下来, gpt 中的 ntfs 分区在 win7 下死活不认, 想用这个分区作为常规u盘使用就不行了, 只好再回到 mbr 分区表。 如果是移动硬盘用 gpt 应该没有问题。
所以仍然使用 mbr 分区,所以就要用 fdisk 或者 cfdisk 了, 不能使用支持 gpt 的 gdisk 和 cgdisk, 4k 对齐也是自动完成。 有趣的是,如果想把 gpt 分区表转换成 mbr 分区表, 还得借助 gdisk:r 进入 recovery 模式, g 进入 mbr 模式,w 进行转换。 根据实际情况, 有些分区转换未必能够成功, 不过变回 mbr 分区表是没有问题的。
ntfs 分区得在第一个分区,不然 windows 不认。
启动u盘是 /dev/sdb,目标u盘就成了 /dev/sdc。
格式化分区:
如果使用 xfs 分区格式:
如果使用 ext4 分区格式:
经过两天的折腾,个人感觉 ext4 在u盘上读写速度快一些。
挂载分区:
安装基本系统
家里有无线路由,网络不用配置,已经自动连上了。
编辑 /etc/pacman.d/mirrorlist ,把最快的源挪到最上面。 一般来说 163 和台湾的源比较快,163 似乎有时候不稳定, 几个中国大学的源有些是 ipv6 的,用不了。 安装完成后,这个配置文件也会自动拷贝到新系统中。 自带的 vi 真的是比 vim 难用多了,一会儿第一时间换掉。
按照官网说明,用 # pacstrap /mnt base base-devel 安装基本系统, base-devel 也一并装上,迟早会用到 aur 或 abs。 提示共 128 个软件包,需要下载 158.37m 内容,安装完成后是 507.09m。
安装
生成
使用 relatime 挂载参数。
以前是推荐增加 noatime 挂载参数,不记录文件读取时间, 但这会导致 mutt 等需要文件读取时间的软件出错。 现在改为使用 relatime 参数了 (已经默认加上了,linux 2.6.30 起此参数成为默认值), 只有在文件读取时间早于文件更新时间时,才更新读取时间数据。
使用 nodiratime 挂载参数,不记录目录读取访问时间。
把 /tmp 放到 tmpfs 上去。(没单独分区,免了)
不再使用 discard 挂载参数。
这个参数主要是针对 ssd 硬盘的,对不支持 trim 的机械硬盘无效, 对u盘貌似作用不明显。
不再使用 async 挂载参数,开启异步读写模式。 由于只是“看起来”快了,实际数据写入速度并没有改善, 考虑到稳定性,是否应使用此参数?
不要使用 barrier=0 挂载参数,这个选项似乎在突然断电、 拔u盘时,有几率丢失文件或损坏分区。 (基于我的经历 + 参考 )
由于不会跑什么大应用,为了降低 swap 的使用频率, 修改 /mnt/etc/sysctl.conf :
下面的操作可以在 chroot 环境下运行:
设置时区:
更改 root 密码: passwd root 。
安装 grub 引导系统。
仍然在 chroot 环境中操作。 编辑 /etc/mkinitcpio.conf ,检查 hooks 段, 让 block 参数紧挨着 udev 参数之后(早一点加载), 然后 # mkinitcpio -p linux 生成 img 文件。 同时加上了 shutdown 参数,作用以后再试。 resume 参数就算了,u盘本来就小、慢,支持休眠更痛苦。 (注:新版本中 block 参数替代了 usb pata sata scsi 等一众参数)
安装 grub:
然后,千万不要忘记 生成 grub.cfg 文件 :
最后,退出 chroot 环境,umount,重启。 启动u盘可以收起来了。
启动后,新安装的u盘变成了 /dev/sdb, 此时最好将 mkinitcpio grub-install grub-mkconfig 重新做一遍, 否则有可能在下次或另外一台机器上启动时,损坏分区表,丢失文件。 或许没有道理,但这是我重复安装好多次以后的感觉,可能有以下原因:
带电插拔,可我都是 umount 了啊,不应当这么脆弱。
被 usb 3.0 高电流给破坏了,没拔u盘烧了算我走运? 倒是听说过 usb 3.0 损坏u盘数据。
/boot 原先没有单独分区,这个不应该。
是原先使用 gpt 分区在 bios 电脑上水土不服? u盘难道就不能用 gpt 分区么?
反正换回 mbr 分区后,貌似比较正常了。
如对本文有疑问, 点击进行留言回复!!
linux下文本编辑器vim的使用方法(复制、粘贴、替换、行号、撤销、多文件操作)
网友评论