在 Banana Pi 中安装 Linux

前言 买来的 Banana PI 闲置的有些久了,打算用来建立内网服务。 结果硬盘供电问题一直没有解决。 最后发现硬盘供电是直连 DC 电源的,于是乎买了 USB-DC 转换线,一切就绪。 按照“策略”里的需求,用 Banana Pi 构建服务是个不错的选择。 磁盘分区和引导 本部分基本参考自 https://github.com/BPI-SINOVOIP/BPI-M2U-bsp 自带的说明文档。 $ fdisk -l [device] > o # 建立 DOS 分区 > n p 1 204800 +256M > t 1 c > a 1 # 先建立 vfat32 格式 BOOT 分区,在分区前空出 204800 磁柱,留给 U-Boot。并且开启 boot flag。 > n p 2 729088 (default) > t 2 83 # 建立 ROOT 分区,ext4 格式。剩余空间都用上好了。 > w # 保存退出 gentoo /mnt/MPI-M2U/BPI-M2U-bsp # fdisk -l /dev/sde Disk /dev/sde: 14....

September 2, 2018 · 1 min · lyincc

Linux 系统基本管理

Disk Part 使用parted建立gpt label并且分区。 个人使用一般分为/、/boot、/home和swap即可。 efi引导需要增加efi分区/boot/efi,为fat16/32格式。 Manage 使用lvm管理磁盘,并开启dm-crypt加密 pvcreate /dev/sda1 pvdisplay pvscan pvmove -v /dev/sda1 vgreduce vg0 /dev/sda1 && pvremove /dev/sda1 vgcreate vg0 /dev/sda1 lvcreate -n [lvname] -l 50%VG [vgname] dd if=/dev/urandom of=/etc/keys/enc.key bs=1 count=4096 cryptsetup -s 512 luksFormat /dev/sda1 [/root/keys/enc.key] cryptsetup open /dev/sda1 name cryptsetup close name cryptsetup luksDump /dev/sda1 cryptsetup luksAddKey /dev/sda1 Mount linux通常使用/etc/fstab文件指导磁盘挂载。 建议使用UUID保证磁盘唯一性。 Time 通常系统时间基于NTP协议进行同步 时间不准将导致ssl协议出现错误!!! echo UTC > /etc/timezone # 时区信息 /usr/share/zoneinfo emerge --config timezone-data 安装NTP服务net-misc/ntp...

March 24, 2018 · 1 min · lyincc

Linux 内核裁剪和编译

自编译内核 大多数发行版都有默认的编译好的内核,并且这种内核模块较全,通用性还是很高的。 这些发行版内核往往会比Linux内核主线慢上一些(例如Debian稳定分支)。 需要用一些特别新的内核API依赖或者内核裁剪爱好者才会自己编译内核。 但是Gentoo作为一个全编译的发行版,并不提供二进制内核。 学习内核编译对理解Linux内核工作方式还是很有帮助的。 选择Kernel分支 一般不推荐Kernel的主线分支,它往往不够稳定。 我使用了Gentoo推荐的gentoo-sources的稳定版本。 另一个选项是带有pax补丁的hardened-sources硬化内核。 但是由于pax开发者闭源了该项目,gentoo已经停止支持了。 但是仍然有爱好者对Kernel主线进行pax移植。 https://github.com/copperhead/linux-hardened 配置内核 make menuconfig 通过该命令进入控制台菜单对内核进行配置。 主要可以参考金步国先生的内核配置文档翻译和文末的配置。 http://www.jinbuguo.com/kernel/longterm-linux-kernel-options.html 编译内核 make mrproper # 清理编译文件 make vmlinux modules # 编译内核镜像 make install modules_install # 安装内核 注意安装内核前要挂载好/boot分区。 使用genkernel工具 genkernel可以快速编译安装内核和内核初始系统。 使用前可修改配置文件/etc/genkernel.conf。 OLDCONFIG="yes" # 加载旧内配置文件 MENUCONFIG="yes" # 编译前手动修改 CLEAN="no" # 关闭自动清理,可以加快二次编译速度 MRPROPER="no" SAVE_CONFIG="yes" # 开启自动备份 LVM="yes" # 开启内核lvm支持 LUKS="yes" # 开启内核Luks加密支持 之后genkernel将自动加载配置 genkernel --kernel-config=<config.file> --install all 启动内核 现在主流的主板都支持EFI启动模式。 在这种模式下Linux一般通过grub或者内核直接启动。 但是内核直接启动需要将内核启动参数直接编译进内核,所以一般还是以grub为主。...

September 16, 2017 · 2 min · lyincc