Desktop 版は GUI が立ち上がってしまう。
Console から CUI による操作を行いたい場合、GUI が起動後に Shift+Ctrl+1 等を叩いても良いが、面倒なら、
起動画面で「F6 その他のオプション」を選択して表示された boot パラメータに「text」を追加して起動すると良い。
Console から CUI による操作を行いたい場合、GUI が起動後に Shift+Ctrl+1 等を叩いても良いが、面倒なら、
起動画面で「F6 その他のオプション」を選択して表示された boot パラメータに「text」を追加して起動すると良い。
UEFI boot だと「日本語」で「Try Ubuntu」しても keymap が US 配列になっているため、JP 配列で使うには gnome-control-center region で Input Sources を設定する必要があるようだ。
これは手間なので、以下のコマンドで Input Sources を「Japanese (OADG 109A)」と「日本語 (Mozc)」に変更すると良い。
Input Sources の切り替えは SUPER + SPACE ([⊞ (Windows Logo Key)] + [SPACE])
これは手間なので、以下のコマンドで Input Sources を「Japanese (OADG 109A)」と「日本語 (Mozc)」に変更すると良い。
Input Sources の切り替えは SUPER + SPACE ([⊞ (Windows Logo Key)] + [SPACE])
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'jp+OADG109A'), ('ibus', 'mozc-jp')]"関連;
PROXY が必要な場合とりあえず以下のようにしておく
apt.conf.d に設定する場合は以下のように
export PROXY=http://proxy.example.com:8080/ export {ftp,http}{,s}_proxy=$PROXY
apt.conf.d に設定する場合は以下のように
for i in {ftp,http}{,s}; do printf "%-21s \"%s\";\n" "Acquire::$i::proxy" "$PROXY"; done >/etc/apt/apt.conf.d/80proxy
以下に帯域付きの mirror list があるので太い回線にぶら下がってるのを選ぶと良い。
/etc/apt/sources.txt に mirror: method で mirrors.txt 指定しておくと、列挙されているミラーからランダムにミラーが選択されるので、以下のようにしておいても良いだろう。
ただし、上記、ミラー一覧の distro mirror status の列を見ると、割と update のタイミングがばらついているので、複数のミラーを混ぜると何らかの不具合が生じる可能性はあるかもしれない。
http://mirrors.ubuntu.com/ には http://mirrors.ubuntu.com/JP.txt をはじめとして、各地域用のミラーリストがそろっている。
少なくとも自分の環境では JP.txt と mirror.txt は同一の内容になっているが、http://mirrors.ubuntu.com/ で index されるファイルサイズは JP.txt が 324 B、mirrors.txt が 34 B になってて wget で response header 見てもリダイレクトされて形跡もない。IP 見てサーバー側で自動選択してくれてるんだと思うが、仕組みが良く分からない。
JP.txt の中には遅いサーバーも混じっているので、
以下のようにして、実測値で上位 N 個の高速なミラーを得た上で、これを参照させると良いだろう。
以前、
2014-11-03 時点の 14.04.1(trusty) だと apt-file コマンド等が mirror: method に未対応だったので問題があったが、
2021-01-04 現在の 20.04.1 LTS(focal) だと、少なくとも apt, apt-get, apt-file については問題なさそうだった。
JP.txt に載ってない、野良ミラーの http://ftp.iij.ad.jp/pub/linux/ubuntu/archive は速度的には地味に優秀なんだけど update の遅延が大きいようだ。
- LaunchPad / Officeial Archive Mirros for Ubuntu # Japan
/etc/apt/sources.txt に mirror: method で mirrors.txt 指定しておくと、列挙されているミラーからランダムにミラーが選択されるので、以下のようにしておいても良いだろう。
ただし、上記、ミラー一覧の distro mirror status の列を見ると、割と update のタイミングがばらついているので、複数のミラーを混ぜると何らかの不具合が生じる可能性はあるかもしれない。
DIST=focal UPDATES=( "" security updates proposed backports ) cp -av /etc/apt/sources.list{,.$(date -r /etc/apt/sources.list +%Y%m%d_%H%M%S)} for update in "${UPDATES[@]}"; do printf "deb mirror://mirrors.ubuntu.com/mirrors.txt %s%-10s main restricted universe multiverse\n" "${DIST}" "${update:+-}${update}" done >/etc/apt/sources.list
http://mirrors.ubuntu.com/ には http://mirrors.ubuntu.com/JP.txt をはじめとして、各地域用のミラーリストがそろっている。
少なくとも自分の環境では JP.txt と mirror.txt は同一の内容になっているが、http://mirrors.ubuntu.com/ で index されるファイルサイズは JP.txt が 324 B、mirrors.txt が 34 B になってて wget で response header 見てもリダイレクトされて形跡もない。IP 見てサーバー側で自動選択してくれてるんだと思うが、仕組みが良く分からない。
JP.txt の中には遅いサーバーも混じっているので、
以下のようにして、実測値で上位 N 個の高速なミラーを得た上で、これを参照させると良いだろう。
DIST=focal UPDATES=( "" security updates proposed backports ) N=3 wget http://mirrors.ubuntu.com/mirrors.txt -qO- \ | while read i; do { echo $i; time wget "$i"ls-lR.gz -qO /dev/null; } \ |& awk 'NR==1{url=$0}/^real/&&match($0,/[0-9]+m/){print (substr($0,RSTART,RLENGTH-1)*60+substr($0,RSTART+RLENGTH))"\t"url;}' done \ | sort -n >/etc/apt/mirrors_response.txt head -n $N /etc/apt/mirrors_response.txt | awk '$0=$2' >/etc/apt/mirrors.txt cp -av /etc/apt/sources.list{,.$(date -r /etc/apt/sources.list +%Y%m%d_%H%M%S)} for update in "${UPDATES[@]}"; do printf "deb mirror+file:///etc/apt/mirrors.txt %s%-10s main restricted universe multiverse\n" "${DIST}" "${update:+-}${update}" done >/etc/apt/sources.list
以前、
2014-11-03 時点の 14.04.1(trusty) だと apt-file コマンド等が mirror: method に未対応だったので問題があったが、
2021-01-04 現在の 20.04.1 LTS(focal) だと、少なくとも apt, apt-get, apt-file については問題なさそうだった。
JP.txt に載ってない、野良ミラーの http://ftp.iij.ad.jp/pub/linux/ubuntu/archive は速度的には地味に優秀なんだけど update の遅延が大きいようだ。
universe, multiverse を追加して cdrom を落とす場合以下のようにすれば良い。
参考:
add-apt-repository universe add-apt-repository multiverse sed -ie 's/^\(deb cdrom:\)/# \1/' /etc/apt/sources.listinstall cd の apt source を www.ftp.ne.jp に変更するなら以下のようにすれば良さそう。
sed -ri 's:[a-z.]+.ubuntu.com/ubuntu:www.ftp.ne.jp/Linux/packages/ubuntu/archive:'g /etc/apt/sources.list野良(?)ミラーかもしれないけどうちの環境だと IIJ が優秀だったので、その場合は以下のようにする。
sed -ri 's:[a-z.]+.ubuntu.com/ubuntu:ftp.iij.ad.jp/pub/linux/ubuntu/archive:'g /etc/apt/sources.listproxy
_() { local i; for i in "Acquire::"{ftp,http,https}"::proxy \"$1\";\n"; do echo -ne "$i"; done; > /etc/apt/apt.conf.d/80proxy; }; _ http://proxy.example.com:8080/
参考:
20 GiB (= 41,943,040 s = 21,474,836,480 B = 2^32*5 B) の場合
mkfs して debootstrap と kernel install
ezchroot.sh は以下
#export NIC=eth0 export NIC=enp0s3 # for VirtualBox export DEV=/dev/sda export DEVSEP= #export DEVSEP=p # for loop device export TIMEZONE=Asia/Tokyoパーティショニング
# parted ${DEV} mklabel gpt u s mkpart "BIOS boot partition" 40s 2047s set 1 bios_grub on mkpart esp fat32 2048s 1050623s set 2 esp on mkpart "Linux filesystem" btrfs 1050624s 41940991s quit結果の確認
# parted ${DEV} u s p free Model: VBOX HARDDISK (scsi) Disk /dev/sda: 41943040s Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 34s 2047s 2014s BIOS boot partition bios_grub 2 2048s 1050623s 1048576s esp boot, esp 3 1050624s 41940991s 40890368s Linux filesystem 41940992s 41943006s 2015s Free Spacescript の準備
cat >/tmp/ezchroot.sh <<'EOD2' #!/usr/bin/env bash BINDS="dev proc run sys tmp" for i in $BINDS; do mount --bind /$i $1/$i done chroot $1 /bin/bash --login for i in $BINDS; do umount $1/$i done EOD2 chmod +x /tmp/ezchroot.sh cat >/tmp/mkfstab.sh <<'EOD2' #!/usr/bin/env bash function uuid () # <dev> { printf "UUID=%-36s" "$(lsblk -no uuid "$1")" } cat <<EOD # <file system> <mount point> <type> <options> <dump> <pass> $(uuid ${1}3) / btrfs defaults,discard,ssd,subvol=@ 0 1 $(uuid ${1}3) /home btrfs defaults,discard,ssd,subvol=@home 0 2 $(uuid ${1}2) /boot/esp vfat defaults 0 3 EOD EOD2 chmod +x /tmp/mkfstab.sh cat >/tmp/mknetplan.sh <<'EOD2' #!/usr/bin/env bash cat <<EOD network: version: 2 renderer: networkd ethernets: $1: dhcp4: true dhcp6: true EOD EOD2 chmod +x /tmp/mknetplan.sh
mkfs して debootstrap と kernel install
mkfs -t vfat -F 32 -n esp ${DEV}${DEVSEP}2 mkfs -t btrfs ${DEV}${DEVSEP}3 mount ${DEV}${DEVSEP}3 /mnt -odiscard btrfs subvolume create /mnt/@ btrfs subvolume create /mnt/@home mkdir -p /mnt/@/boot/esp umount /mnt mount ${DEV}${DEVSEP}3 /mnt -odiscard,subvol=@ mount ${DEV}${DEVSEP}3 /mnt/home -odiscard,subvol=@home mount ${DEV}${DEVSEP}2 /mnt/boot/esp debootstrap $DIST /mnt $(head -n1 /etc/apt/mirrors.txt) for i in /etc/apt/{sources.list,mirrors*.txt} /etc/apt/apt.conf.d/80proxy; do cp -av {,/mnt}"$i"; done /tmp/ezchroot.sh /mnt ########################## # start chroot export DEBIAN_FRONTEND=noninteractive apt update apt install -y linux-image-generic # for BIOS apt install -y grub-pc grub-install --target=i386-pc ${DEV} # --boot-directory=/boot # for UEFI apt install -y grub-efi grub-install --target=x86_64-efi --efi-directory=/boot/esp # --boot-directory=/boot update-grub echo $TIMEZONE >/etc/timezone ln -svf /usr/share/zoneinfo/$(</etc/timezone) /etc/localtime /tmp/mknetplan.sh $NIC >/etc/netplan/config.yaml /tmp/mkfstab.sh $DEV >/etc/fstab exit # end chroot ########################## umount /mnt/boot/esp /mnt/home /mnt
ezchroot.sh は以下
useradd と adduser があるけど、useradd のが簡易かな?
adduser だと full name とかいろいろ聞いてくるけど useradd だとそれがない
追加したユーザーは vigr して sudo グループに追加しておく
複数名の場合はコンマで並べる
adduser だと full name とかいろいろ聞いてくるけど useradd だとそれがない
adduser ユーザー名で group や home directory が自動的に設定され、パスワードやフルネーム等は対話的に設定される
追加したユーザーは vigr して sudo グループに追加しておく
複数名の場合はコンマで並べる
sudo:x:27:[ユーザー名[,...]]
タグ
コメントをかく