存档

‘Linux’ 分类的存档

从USB硬盘启动树莓派4B

2021年12月21日 4 条评论

引用1:https://gist.github.com/XSystem252/d274cd0af836a72ff42d590d59647928
引用2:https://archlinuxarm.org/forum/viewtopic.php?t=14672#p64313

应用1是一个大神做的笔记,应用2是ArchLinuxARM2020年底时候对于USB硬盘启动做的讨论,这个帖子在ArchLinuxARM论坛被置顶了。应用1整理了引用2 中关于USB硬盘启动的方法外,还在USB硬盘上使用btrfs文件系统,还做了全盘加密。我这里没有这么多的需求,所以对原文做了一个简化。

另外因为我的树莓派4B是2019年买的,也就是说其eeprom比较早,需要升级,我也把怎么更新这部分内容,做了描述。

概述

大约在2019年12月份的时候,搞过一次使用usb硬盘做roofs,原理比较简单,就是从tf卡的vfat分区启动,然后挂载usb硬盘的分区作为rootfs,然后配置cmdline.txt文件就好了。

但是最近这个树莓派滚挂了,原因也很简单,当时使用的是三方LTS的aarch64的内容,后来ArchLinuxARM接管了这个内核,再后来ArchLinuxARM牛B大了,不用LTS的内容,开始为树莓派4B提供与ArchLinux相同的滚动最新内核,并且在树莓派4B的bootloader与内核之间加了一层uboot,然后我的这个树莓派4b就滚挂了。

今天某东新买的tf读卡器到了,就花了一下午的时间把这个研究了一下,终于搞定记录一下。

树莓派4B最新的eeprom更新了bootloader,可以通过raspi-config来做启动顺序的设定。可以设定tf卡启动失败,再使用usb硬盘启动,也可以设定usb硬盘启动失败,再使用tf卡启动。这样一来,我们就可以直接从USB硬盘启动,不再像我2019年时候还是用tf卡的vfat分区做启动。

另外,今天发现最新ArchLinuxARM在启动的时候没法挂载usb硬盘,但是启动以后可以挂载,这样就需要定制一下内核的img,保证在内核加载的时候,相应usb的驱动能被加载。

在开始前,我们需要准备一张tf卡,这个卡要先用来升级树莓派4B,后面再用来定制ArchLinuxARM。

升级树莓派4B

我准备直接用2019年时候的那个tf卡,这个卡是16G。我先在我的manjaro xfce里面安装了一个叫rpi-imager的包,他是树莓派基金会官方出的tf卡制作工具的linux版,现在这个工具很牛B了,除了可以刷Raspberry Pi OS(Raspbian),还能直接刷manjaro arm和libreelec。在这个tf卡上刷一个Raspberry Pi OS Lite版,因为我们不需要桌面环境,ssh远程访问就好了。

制作好tf卡以后,加载vfat分区,在里面的根目录下创建一个名为ssh的空文件。linux下可以用下面的命令快速创建。

touch ssh

将tf卡插回树莓派4b,然后加电启动。在路由器找一个名叫raspberrypi的主机的IP,然后使用如下命令远程登录,默认密码是raspberry。

ssh pi@192.168.1.xxx

登录后按顺序执行下面的三行命令

sudo apt update
sudo apt full-upgrade
sudo rpi-eeprom-update -d -a

这三行命令的第一行是更新本地安装包数据库,第二句是根据最新的本地安装包数据库,更新所有的安装包。我执行完这两行以后,第三行已经不用执行了,从显示的信息看,已经从2019年而eeprom更新到了2021年4月份的版本了。这个2021四月份的版本是稳定版本,如果想换成其他正式发布的版本,好像还可以更新到最新的2021年11月版本。但这与我的目标没有关系了,我也就没有往下升级。

这时树莓派4B的eeprom更新就已经搞完了。我们使用halt命令关机,当树莓派4B的电源灯灭掉的时候,我们先断电,再拔出tf。

准备启动TF卡

我们把tf通过读卡器接回manjaro,现在我们可以针对这两个卡进行操作了。因为之前的创建Raspberry Pi OS的时候,tf上面已经有两个分区了,我们现在跳过分区的步骤,开始重新格式化这两个分区。重新格式化vfat是因为ArchLinuxARM使用了uboot,重新格式化ext4是因为ArchLinuxARM的根文件系统与Raspberry Pi OS完全不同。

sudo mkfs.vfat /dev/sdc1
sudo mkfs.ext4 /dev/sdc2
mkdir boot
mkdir root
sudo mount /dev/sdc1 boot
sudo mount /dev/sdc2 root
sudo bsdtar -xpf ArchLinuxARM-2021.11-rpi-aarch64-rootfs.tar.gz -C root
sudo mv root/boot/* boot
sudo sed -i 's/mmcblk0/mmcblk1/g' root/etc/fstab
sudo umount boot root

最后一行是因为我们安装的是aarch64版本,这个版本貌似mmcblk不是从0开始排的,是从1开始排的。如果是armv7版本的话,是不需要这一行的。使用aarch64版本的好处就是速度快,很多64位的软件可以用,但是坏处是发热量大,我树莓派4B上就安装了一个大散热片。

这样我们就完成了tf的准备,这时可以拔出读卡器,将tf插回树莓派4B。加电前,需要先把USB线断开,这是因为默认的内核img里面usb的驱动,启动时连接USB,在启动以后看不到usb,反而是启动完成再连接usb线能看到usb设备。

我的usb设备不是普通的usb硬盘,而是针对树莓派4b设计的同伴科技的x825笔记本硬盘扩展板,我在上面加了一个本子上拆下来而1T本盘。同伴科技还出来其他的usb硬盘扩展板,你可直接使用m2的ssd,或者3.5寸的台式机硬盘,甚至还能接两个硬盘。

安装准备

在树莓派4b启动以后,我们再去路由上找一个名叫alarm设备的IP。我们使用下面的命令登录。

ssh alarm@192.168.1.xxx

下面我们开始准备向USB硬盘上写的系统:

  1. 登录后我们使用su命令切换到root帐号。ArchLinuxARM没有内置sudo,切换成root,后面比较方便。
  2. 修改/etc/pacman.conf,去掉Color和ParallelDownloads = 5前面的注释,然后在ParallelDownloads = 5下面加一行ILoveCandy。Color表示pacman使用彩色界面,ParallelDownloads = 5表示pacman使用5个并发下载,能提高下载效率,最后一个ILoveCandy是一个隐藏菜单,pacman会使用游戏吃豆的特效来现实进度条。
  3. 修改/etc/pacman.d/mirrorlist,这个可以修改成国内中科大镜像或者清华tuna的镜像,速度在我这儿位置是最快的,具体怎么改不细说了,参考http://mirrors.ustc.edu.cn/help/archlinuxarm.html
  4. 先后执行pacman-key –init和pacman-key –populate archlinuxarm。
  5. 执行pacman -Syu将系统盘滚动更新到最新的版本。
  6. 然后通过命令行pacman -S uboot-tools rsync安装两个工具,第一个是uboot工具,用于更新uboot启动配置,第二个是同步工具,将tf上制作完成的系统同步到usb上。
  7. 这个时候我们先重启树莓派4b。

重启后我仍然用ssh登录在切到root帐号。

  1. 然后修改/etc/mkiniycpio.conf,在MODULES=()的括号中加上pcie_brcmstb。保存后执行mkinitcpio -P,这样会重新创建一个新的initramfs镜像文件,这将保证内核在启动时支持usb。
  2. 编辑/boot/boot.txt。编辑前备份一下这个文件。将part uuid ${devtype} ${devnum}:2 uuid这一行注释掉。
  3. 在将下面一行中的root=PARTUUID=${uuid}改为root=/dev/sda2。然后在/boot目录执行./mkscr。
  4. 编辑/etc/fstab。将/dev/mmcblk1p0 /boot vfat defaults 0 0中的mmcblk1p1换成sda1。
  5. 这时我们连接usb硬盘,连接后通过lsblk查看能否看到/dev/sda设备。
  6. 如果能看到,我们对usb硬盘进行分区,与tf分区类似,第一个分区256MB,类型为c,第二个分区为剩下磁盘大小,类型不变。我们在安装好以后使用交换文件来做交换内存,不使用交换分区。
  7. 回到root帐号的home,创建boot和root两个目录,将/dev/sda1挂载在boot上,将/dev/sda2挂载在root上。
  8. 执行rsync –info=progress2 -axHAX /boot/ boot/和rsync –info=progress2 -axHAX / root/,将tf的两个分区同步到usb硬盘的两个分区。然后再执行sync确保磁盘写操作真是完成。
  9. 这时我们就可以关闭树莓派4b,拔电后取出tf,再不拔出usb硬盘的情况下,重新加电启动。这时我们从路由上可以看到,一个叫alarm的设备已经获得ip了。

后续的设置,已经和普通的Archlinux没有什么区别了,设置一下ntp自动更新时间,设置一下当前的时区,设置一下locale,设置一下hostname等等。当然为了winbios名字解析,也可以安装一个samba。

关于Archlinux下搭建百度PaddleOCR的测试环境

2021年7月23日 7 条评论

原文推荐使用Dockers镜像,但是我觉得没意思,于是在虚机里面找了一个干净的Archlinux来搞,需要提前给arch里面安装:base-devel,python,python-pip,cython,wget,libglvnd。

在第2步安装PaddlePaddle的时候,如果提示版本找不到的话,可以考虑去掉版本,安装最新版。

在第3步从github获取PaddleOCR的代码,在github连不上的时候,可以改用gitee,延迟几天无所谓,反正同步过来的应该都是可用版。

在第4步安装requirements.txt的时候,建议加上 -i https://mirror.baidu.com/pypi/simple 。百度的这个pypi的镜像网站,比清华的那个快,而且稳定。另外,建议加上环境变量MAKEFLAGS开启make的多job支持,在安装scikit-image的时候,还需要编译一些内容,不开多job支持,还是挺慢的。

使用快速使用文档中的命令行,测试通过。

分类: Linux 标签: , ,

OMV5安装extras插件后性能统计图片无数据问题的解决

2021年4月16日 3 条评论

最近把蜗牛星际矿渣不知道为啥不知道同时4块12T,于是把系统换成了OMV5,但是用脚本装完了omv5-extras插件以后,系统信息->性能统计 里面的图片全成空的了。由于OMV用的少,5的资料也少,不知道从什么地方下手解决。

最近没事就搜一搜,查一下,最后在omv-extras的github的问题反馈里看到有人也反应这个问题。按照其中的解决办法,能解决问题。看描述应该omv-extras的安装脚本关闭了collectd服务,解决办法也简单,用systemctl打开并启动collectd服务就好了

分类: Linux 标签: ,

关闭内核信息输出控制台

2020年9月30日 4 条评论

关了内核的audit信息,还是有电压之类的信息在不停的输出,找了raspberry pi官方的文档,说修改config.txt文件的告警级别,但是实测不太管用,于是准备彻底关闭内核信息的输出。

查了一下,把cmdline.txt里面的console=tty1删掉了,内核信息就不输出控制台了。如果想看,可以保留输出到串口,连接串口查看。

分类: ARM, ARM Box, Linux 标签: , ,

关闭ArchLinuxARM控制台的audit输出

2020年9月30日 6 条评论

以前没研究linux写屏,这些输出还无所谓,最近决定研究一下怎么关闭这个输出。

alarm的论坛有人回复了两种方法,一种直接关掉audit,一直是关掉输出。

关掉audit可以在/boot/cmdline.txt最后面加audit=0

关掉输出可以systemctl mask systemd-journald-audit.socket

分类: ARM, ARM Box, Linux 标签: ,

Archlinux安装阶段的静态IP修改

2020年7月24日 没有评论

办公室的网络需要授权才能访问互联网,server有不需要授权的网段,但是archlinux的iso启动的时候默认是dhcp获取的ip,这就需要将ip改为不需要授权的网段。研究了archlinux的wiki,找到了修改方法。

archlinux的iso是用的是systemd-networkd这个服务来设置iso启动的网络设置,这就需要修改/etc/systemd/network/20-ethernet.network。

首先,去掉DHCP相关设置:删除[DHCP]段,删除[Network]的DHCP=yes

然后,加静态IP设置,在[Network]段加上:

Address=192.168.1.2/24

Gateway=192.168.1.1

DNS=114.114.114.114

最后,用systemctl restart systemd-networkd重启网络服务。

分类: Linux 标签:

Archlinux安装ftp服务

2020年7月23日 1 条评论

前两天安装的transmission服务,下载的内容只能通过sftp拿回来。后来发现sftp服务传输效率不高,在需要安全的情景下也还能忍,但是在家里内网的情况下,千兆带宽只跑20%,cpu负载就满了,还是专门配置一个明文的ftp好。

网上看了一下,vsftpd用的最多,而且看archlinux的wiki,这个貌似也是最简单。我就选这个了。其实我要求不高,不用开匿名,不用单独账号列表,使用系统账号就好,能把下载的内容删除,这么多就好。过程如下:

1. pacman –S vsftpd

2.编辑/etc/vsftpd.conf

3.去掉write_enable=YES前面的注释

4.去掉local_enable=YES前面的注释

5.使用systemctl启用并启动vsftpd

这就可以打完收工了。

分类: Linux 标签:

Archlinux的时间同步

2020年7月23日 4 条评论

现在Linux主机的最佳实践是硬件时钟设置为UTC时间,然后设置自己的时区。但是如果是一台之前没有安装过Linux的主机,就会有一个问题,怎么精确设定时间。当然,如果联网的条件下,NTP是最简单的办法。以前这么做都是通过ntpd包带的ntpclient来实现。现在多了一个选择:systemd-timesyncd。

启用过程很简单,现在修改/etc/systemd/timesyncd.conf,去掉NTP=前面的注释,然后在后面填上time.windows.com这个服务器。然后使用timedatectl set-ntp true起作用这个服务。

之后可以用timedatectl status开查看当前系统的时间状况。也可以用timedatectl timesync-status来查看时间同步的情况。

分类: Linux 标签:

Transmission的RPC验证

2020年7月19日 1 条评论

Transmission的RPC接口很好用,Transmission-Remote-GUI就是玩pt的利器,但是RPC验证不开启的话,会有一些诡异的行为没有文档描述。比如:

  • 不开启验证,TRGUI添加磁链或者种子的时候,会提示下载路径不是绝对路径,但是原生的WebGUI没有问题。
  • 不开启验证,使用域名访问(非localhost)的时候,会提示拒绝,建议用ip或者开启验证。

以上行为在Transmission 3.0和TRGUI的5.18上会出现。

分类: Linux 标签:

树莓派4上的64位Archlinux

2019年12月21日 7 条评论

前两天终于咬牙跺脚收了同伴科技的X825,这是因为树莓派4终于支持了USB3.0,能基本把硬盘的性能跑出来了。顺便研究了一下,现在树莓派4上面的64位Linux,基本上可以确定现在树莓派4可以当做小型服务器来耍了。

首先,树莓派4是aarch64架构的arm处理器,4G内存,千兆网络,USB3.0接口,基本可用了。其次,Docker Hub上的服务器应用也开始支持aarch64了,甚至像mariadb、mongodb和openjdk的docker官方镜像只支持arm的aarch64架构。

网上查了一段时间,对比了树莓派爱好者基地的64位debian和第三方出的64为archlinuxarm,觉得还是喜欢archlinux,于是写写怎么在树莓派4上跑64位的archlinuxarm。

感觉archlinuxarm网站论坛里面的讨论,找到了一个三方出的树莓派4的64为archlinuxarm的rootfs,地址是https://olegtown.pw/Public/ArchLinuxArm/RPi4/rootfs/ ,挑一个最新的,按照archlinuxarm官方树莓派4的安装教程 https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4#installation 来安装就好了。安装好以后,连接有线网络,可以在路由器的dhcp设备列表里面找到设备的ip,这时候远程登录就好了。

安装好以后需要做一些官方教程里面没有的额外设置,首先要用nano来编辑/etc/resolv.conf,添加一行nameserver 8.8.8.8。这是因为这个rootfs没有安装vi包,其次没有设置dns服务器。如果我们需要改成静态ip,需要修改/etc/systemd/network/eth.network。

如果需要使用netbios访问树莓派4,可以参考我之前写的http://just4fun.cn/?p=1017

如果需要使用文件做交换内存,可以参考我之前写的http://just4fun.cn/?p=972

这个时候可以开始配置X825上面的硬盘作为rootfs。我是专门从狗东买了一个容量最小的tf卡,按照前面的介绍安装好archlinuxarm,分区并格式化/dev/sda1,然后直接修改/boot/cmdlin.txt就好了。但是在树莓派爱好者基地的64位debian貌似这么做不好用,可能是因为它用了树莓派上面UFEI导致的,没有深入研究。

硬盘接好启动以后,用fdisk先给硬盘创建一个分区,把格式化好ext4的分区mount在/mnt/newdrive,然后执行命令rsync -avx / /media/newdrive把tf卡的rootfs同步到硬盘上。这个步骤在树莓派爱好者基地的64位debian上也不好用。之后修改cmdline就好了。

重启之后,使用df -h看看根fs是不是挂在sda1上。

另,这个三方的roofs可以用pacman更新archlinuxarm官方的aarch64软件包,但是因为官方没有aarch64的树莓派内核,所以需要自己从https://olegtown.pw/Public/ArchLinuxArm/RPi4/kernel/https://olegtown.pw/Public/ArchLinuxArm/RPi4/firmware/ 下载最新的内核和firmware。此外这个网站还提供了5.4的内核,但是因为树莓派官方的内核只有4.19的代码,所以我没敢尝试。

分类: ARM, ARM Box, Linux 标签: ,

关于此次Archlinux的Base安装包组变化带来的影响

2019年10月23日 3 条评论

按照Archlinux的新闻稿,在2019年10月6日更新了Base安装包组,这里面只留下了必要的软件包,https://www.archlinux.org/news/base-group-replaced-by-mandatory-base-package-manual-intervention-required/

但是根据我的试验,不只其新闻稿中说的kernel、kernel-firmware和editor被移走,netctl、dhcpcd也被挪走了。而wiki的Install Guide却没有提及,这导致在安装完成后,实际是没有办法连接网络的,或者我不知道怎么连接网络了。经过试验需要把如下的安装根文件系统的语句

pacstrap /mnt base

替换为

pacstrap /mnt base linux linux-firmware netctl dhcpcd vi

其目的是补全base中移走的内容,保证安装完毕重启以后,系统能连接网络,继续后面的软件包的安装。

分类: Linux 标签:

给ArchLinux配置NetBIOS/WINS协议的hostname解析

2019年9月23日 1 条评论

这个需求的背景是,博主使用树莓派作为开发服务器,使用windows环境内做客户端完成开发。树莓派在连接不同的网络的时候,动态获取的IP每一次都变化,在代码中动态调整比较烦人。如果能支持NetBIOS的话,那么就可以直接通过主机名,在不同的网络环境中都使用名字来访问树莓派。

一般的Linux的桌面环境这么做都不存在什么问题,但是像ArchLinux这样的极简系统就需要自己配置NetBIOS服务在局域网内广播主机名。一般Linux环境都有现成的Samba可用,而Samba服务端就内置了NetBIOS/WINS服务端,这样我们安装好Samba,启动相应服务就好了。

在ArchLinux当中,可以通过如下步骤解决:

1.安装Samba包

pacman –S samba

2.从https://git.samba.org/samba.git/?p=samba.git;a=blob_plain;f=examples/smb.conf.default;hb=HEAD获取最新版的smb.conf放在/etc/samba目录下。

3.启动winbind服务

systemctl enable winbind

systemctl enable nmb

这样,即使不启用Samba服务,我们先在也可以使用NetBIOS和WINS协议找到这个树莓派了。这个办法在Archlinux的PC和树莓派上都适用。

分类: Linux 标签:

netctl开启自动连接wifi

2018年12月20日 7 条评论

首先使用wifi-menu连接过一些wifi,这样在/etc/netctl下会有一些链接文件。然后安装wpa-actiond包,再开启netctl-auto@wlan0服务。

1. pacman –S wpa-actiond

2.systemctl enable netctl-auto@wlan0

这样重启以后,就会从已有的连接文件中,选取信号最强的那个wifi自动连接。

分类: Linux 标签:

微雪的SPI液晶屏在ArchlinuxARM上的设置

2018年8月8日 没有评论

我之前的一堆树莓派都找不到了,但是翻出来了一个带微雪3.5寸SPI液晶屏的B+,有点古董。正好前段时候收了一个HDMI的3.5寸液晶屏,顺手对比一下,再写一个配置教程。

微雪的这个屏叫3.5A,应该是有好几个版本了,我手里这个是V3,但是微雪淘宝店里的照片已经不一样了。好在驱动还是一样的。微雪还有一个3.5B,是IPS液晶的面板,也视角会更大。另外还有一个3.5 HDMI产品,也是IPS的面板。这三块屏都是480*320的分辨率。

这三块屏的区别是,HDMI那块带一个驱动芯片,1920的信号输出也能直接显示,模糊而已。因为使用HDMI,一般的img都不需要驱动,另外HDMI的带宽要好,显示速度要快。SPI的这两块,由于数据带宽低,屏幕上更新的内容多了以后,会有明显的刷屏。而且因为SPI不是标准的视频接口,所以需要微雪的接口驱动才能工作。

相应的价格也是3.5HDMI最高,3.5A最便宜,我手里这两个屏,正好一头一个。

微雪网站资料很丰富,3.5A的页面如下:www.waveshare.net/wiki/3.5inch_RPi_LCD_(A) 这里面提供了一驱动包,一个安装好驱动的raspbian的镜像,以及一个说明文档。这个文档说明了驱动包怎么用,以及内置驱动的img怎么做tf卡。驱动包地址为http://www.waveshare.net/w/upload/3/34/LCD-show-180331.tar.gz

我看了一下驱动包怎么安装,也打开了LCD35-show这个脚本,发现这里面基本上两部分内容,显示编译驱动,然后配置控制台驱动和x的驱动。正好看到包里面有编译好的驱动,至少在这个B+上目前工作正常,下面就说说ArchlinuxARM上怎么配置。

1.在驱动包的根目录下有一个waveshare35a-overlay.dtb文件,把这个文件复制两次到你archlinuxarm的boot分区的overlays目录下,一次保持原名,一次改名为waveshare35a.dtbo。

2.修改config.txt文件,在最后加上dtoverlay=waveshare35a

3.修改cmdline.txt文件,在最后加上一个空格和fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo

这样重启以后,经过一段时间的浅灰色的显示阶段,控制台就显示出来了。

这个办法目前在我的B+上的ArchlinuxARM上可用,uname -a显示为

Linux alarmpi 4.14.59-1-ARCH #1 SMP Tue Jul 31 00:57:25 UTC 2018 armv6l GNU/Linux

在ArchlinuxARM中使用F2FS文件系统

2018年8月3日 没有评论

做tf的系统(我的系统就是archlinux)需要安装f2fs-tools。

针对ArchlinuxARM官方的安装过程,替换mkfs.ext4为mkfs.f2fs

目前树莓派的最新内核,以及aarch64最新内核都会支持这个文件系统,不需重新编译内核

系统第一次启动以后,需要安装f2fs-tools,默认的跟目录包不包含它。resize.f2fs和fsck.f2fs会依赖这个包。

对于f2fs能对tf有多少提升,现在很多人意见不统一,至少他是针对tf设计的。

分类: ARM, Linux, Raspberry Pi 标签:

在Archlinux中使用swapfile

2018年2月27日 5 条评论

swapfile简单的说就是不使用交换分区而使用文件来交换内存,这个有点像windows的pagefile。我为什么要使用swapfile而不使用交换分区呢?因为我有强迫症,我总是迫切自己roofs一定要在sda1上……

步骤比较简单:

1.创建交换文件

# fallocate -l 512M /swapfile

需要注意的是,如果文件系统是XFS的话,这么做可能会导致问题,那么可以用dd来完成:

# dd if=/dev/zero of=/swapfile bs=1M count=512

2.修改文件的权限

# chmod 600 /swapfile

3.类似格式化交换分区

# mkswap /swapfile

4.激活交换文件

# swapon /swapfile

其实这个时候通过free -h已经可以看到内存数据中的交换信息了。

5.最后一步是在fstab中添加交换文件的信息,使系统重启以后能自动激活交换文件

/swapfile none swap defaults 0 0

到此,打完收功。在ArchlinuxLinux的Wiki中其实是还有卸载这个交换文件的方法,但是我觉的这个用处不大,不在这里记录了,需要的时候去查就好了。

分类: Linux 标签:

给i686制作mariadb的docker镜像

2018年2月25日 没有评论

不知道Docker公司是怎么想的,明明其Dockerfile没有指定必须x64,却不提供i686的镜像,只好每次有新版本的时候,重新制作一次。步骤如下:

1.先从Docker公司的github里面获取最新的Dockerfile

git clone https://github.com/docker-library/mariadb.git

2.进入mariadb/10.2目录,然后执行

docker build –t mariadb:10.2.13 .

然后等着就好了。

建议开始之前,先把debian:jessie升级到最新,这样能省很多debian做apt update的时间。

分类: Docker, Linux, MySQL 标签: , ,

CentOS安装Docker-CE

2017年12月5日 没有评论

原本CentOS7里面的Docker是1.12版本的,没觉得很老,但是在自动化构建asp.net core的时候,不支持Dockerfile中的FROM AS语法,只好查一下CentOS7下怎么安装新的Docker-CE,如下:

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum install docker-ce

systemctl start docker

目前安装的是17.09.0-ce版本

分类: Docker, Linux 标签: ,

CentOS7安装新内核

2017年12月5日 没有评论

CentOS的包相对还是很保守,没有新内核,没有新软件,也就没有功能。现在4.14的内核已经进入LTS序列了,CentOS还是3.10的内核,捉急

特地研究了一下怎么升级CentOS 7的内核,简单的说CentOS的库里面没有,装其他仓库的,比如elrepo.org里面的过程如下:

rpm —-import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

yum —-enablerepo=elrepo-kernel install kernel-ml

写这个blog的时候,已经可以安装4.14.3内核了,后面需要修改grub默认使用的内核:

先vi /etc/default/grub,改为GRUB_DEFAULT=0

然后重新生成grub的配置文件

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

分类: Linux 标签:

自动安装Archlinux的脚本

2017年12月5日 没有评论

最近受ArchLinux官方的Dockerfile的启发,做了一个Archlinux的安装脚本,发布在https://github.com/bh1rio/archlinux-install

里面的脚本,可以在安装iso启动以后,wget后来运行。这个脚本也适用Archlinux32,但是需要修改mirroslist文件中的镜像服务器地址,目前ustc和yun-idc的mirror还没有ArchLinux32的镜像。

如果你希望干预修改root的密码,你可以注销掉其中的passwd行,不修改问题也不大,因为login的时候root不需要密码。login进去再修改密码就好了

当然你也可以fork自己的版本然后修改。比如我的hptc小机器,就可以加入raid相关的代码。

如果你的网络够快,5分钟就可以准备好一个干净的Archlinux。(嗯,我这里是500Mb的光纤Smile

分类: Linux 标签: