Category Archives: Ubuntu

Ubuntu PPPoE Server 架設

網路上找到的範例都有缺, 主要是缺 pppoe kernel module 的部份, 也不會很難, 在 Ubuntu 18.04 下需要上個 patch 修掉 compile bug.

Read more »

Ubuntu Build Original Linux Kernel

最好的方式應該是這一篇文章

不要再用什麼 fakeroot 去編了, 失敗率超高, 尤其是在 ARM 平台

https://wiki.ubuntu.com/KernelTeam/GitKernelBuild
Read more »

Change Ubuntu Cloud Image Password

Ubuntu cloud image is very good for deploy a simple qemu image system.
But the image has it owns password and initial script.
Read more »

NetworkManager inactive

最近發生一件怪事, VM suspend 當掉之後, networkmanager 顯示 inactive
Read more »

Ubuntu Create Netboot Image

剛好工作上有需要用到在 Ubuntu 做一個新的 netboot image, 這樣就不用等 Canonical release 新版的 netboot image.

我用的是 Ubuntu 17.04, 如果要在別的版本上執行, 會有一點差異
Read more »

常用 Ubuntu 指令

應該是常用又記不住的指令集.
Read more »

MIPS/ARM64 Debian/Ubuntu debootstrap

這個時間點, debian mips 的 debootstrap 只有 jessie 是好的, sid 或是 stretch 都有問題.

$ debootstrap --verbose --foreign --arch mips jessie ./   http://ftp.tw.debian.org/debian

mips64 只有 mips64le , 沒有 mips64 .

其他的還是看這篇文章就好, 也快八年了.
[ARM][Linux] 建立 ARM 平台的 Debian System

懶得再開一篇, 改一改就好了.
如果是裝 ARM64 Ubuntu 呢? mirror 改到 ports.ubuntu.com 去就可以了, 也有 tw.ports.ubuntu.com 但是我記得是指向國外, 記得 arch 和版本號都要改
Ubuntu 16.04 LTS

$ debootstrap --verbose --foreign --arch arm64 xenial ./ubuntu http://tw.ports.ubuntu.com/ubuntu-ports

Ubuntu 18.04 LTS

$ debootstrap --verbose --foreign --arch arm64 bionic./ubuntu http://tw.ports.ubuntu.com/ubuntu-ports

我愛用 NFS 開機, 這是 u-boot NFS 的 example command

setenv bootargs 'console=ttyAMA0,115200n8 earlycon=pl011,0x87e028000000 debug maxcpus=24 rootwait rw ip=dhcp::eth2:off root=/dev/nfs rw nfsroot=10.0.0.30:/nfs/ubuntu1804,v3 coherent_pool=16M'
 
setenv start 'setenv ethact vnic2 ; dhcp ;  setenv serverip 10.0.0.30 ;  tftpboot $kernel_addr Image ; booti $kernel_addr - $fdtcontroladdr'
 
run start

如果是在 target board 上執行, 可以 chroot 到 ubuntu 內, 如果是用 NFS 開機, 可以跳到 run second-stage

cd /ubuntu
mount --bind /proc proc
mount --bind /dev dev
mount --bind /sys sys
cd etc
cp /etc/resolv.conf . 
cd / 
chroot ubuntu bash

執行, 解壓相關的 package (run second-stage)

/debootstrap/debootstrap --second-stage

Ubuntu 16.04 編輯 /etc/apt/source.list 加上

deb http://tw.ports.ubuntu.com/ubuntu-ports xenial main restricted
deb http://tw.ports.ubuntu.com/ubuntu-ports xenial-updates main restricted
deb-src http://tw.ports.ubuntu.com/ubuntu-ports xenial main restricted universe multiverse
deb-src http://tw.ports.ubuntu.com/ubuntu-ports xenial-updates main restricted universe multiverse
deb http://tw.ports.ubuntu.com/ubuntu-ports xenial universe
deb http://tw.ports.ubuntu.com/ubuntu-ports xenial-updates universe
deb http://tw.ports.ubuntu.com/ubuntu-ports xenial multiverse
deb http://tw.ports.ubuntu.com/ubuntu-ports xenial-updates multiverse

如果是 18.04

deb http://tw.ports.ubuntu.com/ubuntu-ports bionic main restricted
deb http://tw.ports.ubuntu.com/ubuntu-ports bionic-updates main restricted
deb-src http://tw.ports.ubuntu.com/ubuntu-ports bionic main restricted universe
multiverse
deb-src http://tw.ports.ubuntu.com/ubuntu-ports bionic-updates main restricted u
niverse multiverse
deb http://tw.ports.ubuntu.com/ubuntu-ports bionic universe
deb http://tw.ports.ubuntu.com/ubuntu-ports bionic-updates universe
deb http://tw.ports.ubuntu.com/ubuntu-ports bionic multiverse
deb http://tw.ports.ubuntu.com/ubuntu-ports bionic-updates multiverse

更新套件庫

$ apt update
$ apt -y upgrade

安裝必要的程式 (註:註 net-tools 過時了, 可以我還是習慣舊指令)

$ apt install -y vim openssh-server tmux btrfs-tools net-tools sudo wget resolvconf-admin

Add User

$ adduser [username]

順便改 root 的密碼

$ passwd root

加上無密碼 請參考這個連結

註: 18.04 可能要先設定密碼之後重開機一次才能, 更新系統環境變數, 安裝套件以便之後的設定

註2: 18.04 如果時間差太多會 update 失敗, 要先調整時間到今天
先裝 nfs-common 增加 nfs access 的速度

$ apt install -y nfs-common

備用, 17.04 後似乎都會用 resolvconf 當 DNS service, 但是不知道為什麼不會取用 DHCP 得到的 DNS

$ systemctl disable systemd-resolved.service
$ service systemd-resolved stop
$ echo "nameserver 8.8.8.8" > /etc/resolv.conf

這樣看看會不會正常

編輯 /etc/hostname
取一個合適的名字, 預設是用執行 debootstrap 的主機名稱

編輯 /etc/network/interface

如果有 cache server, 加到 /etc/apt/apt.conf
可以加速

最後要產生 utf-8 的 locale 檔案

$ sudo locale-gen en_US.UTF-8

ARM64 Ububtu GRUB Install

碰到一台 ARM64 機器沒有裝 GRUB . ARM64 是跑 UEFI

首先先安裝 grub

$ sudo apt install grub-efi-arm64 grub-efi-arm64-bin grub2-common

檢查 uefi partition 有沒有 mount 在 /boot/efi 下, 如果沒有可以 mount 上去, ex:

$ sudo mount /dev/sda1 /boot/efi

執行 grub-install 後就可以了

$ sudo grub-install /dev/sda

ref.
GRUB on ARM
GRUB (正體中文)

Kubuntu 16.10 open-vm-tools mount vmware host shared folders

16.10 之後看起來 open-vm 就很成熟了. 不過 mount host share folder 的方式有點不同.

要用這個指令

$ sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

ref.
Enabling shared folders with open-vm-tools

BTRFS 心得

ext3/ext4 是傳統的檔案系統,
BTRFS 是 Linux 下新一代的檔案系統, 在除了檔案系統基本功能以外的操作都很不一樣.

BTRFS 主要增加了
可擴充性(scalability). B-tree 系列的效能很好. 看起來是號稱, 簡單的 Write 還不錯, 複雜性的操作的效能就沒有很好(Linux 4.7 – Btrfs vs. EXT4 vs. F2FS vs. XFS vs. NTFS Benchmarks).
數據一致性(Data integrity) 沒用到
快照管理(Snapshot/clone)

速度, 最近在開發的時候發現 BTRFS 在快照管理上頗好用.
Read more »