Писа́л про Ubuntu Snappy, а сам не удосужился пощупать данного зверя. Исправляюсь! Пишу личные впечатления от светлого будущего, которое неминуемо нас поджидает за углом. Минималистичный Ubuntu Snappy с транзакционной системой обновления и отсутствием apt-get/deb как класс.
Так как нет пока ISO, в котором бодрый GUI/CLI установщик поставит мне систему через Далее - Далее, то мне приглянулся вариант через "OVA images: multiple hypervisor support". Хоть этот вариант идеален для:
а у меня внедрён свободный проект за 0 рублей под названием ProxmoxVE, но разве стандарт OVA не зашаманить в ProxmoxVE, использующий KVM/QEMU? Легко! Не забудьте выполнить инструкции, связанные с созданием seed.iso, иначе не сможете зайти в систему. Я пока не знаю зачем такие финты ушами, возможно, это как-то связано с системным разделом, доступным read-only .
Итак, seed.iso у нас в виртуальном CDROM и Ubuntu Snappy Core, наконец-то нас пустила внутрь. Что видим? Говорил же - светлый, будущий мир! Brave new world.
Welcome to Ubuntu 15.04 (GNU/Linux 3.19.0-18-generic x86_64) * Documentation: https://help.ubuntu.com/ Welcome to snappy Ubuntu Core, a transactionally updated Ubuntu. * See https://ubuntu.com/snappy It's a brave new world here in snappy Ubuntu Core! This machine does not use apt-get or deb packages. Please see 'snappy --help' for app installation and transactional updates.
Первое что мне было интересно - df -h
/dev/sda3 976M 536M 373M 59% /
/dev/sda5 6.8G 19M 6.4G 1% /oem
...
/dev/sda4 976M 1.3M 908M 1% /writable/cache/system
/dev/sda2 63M 7.2M 56M 12% /boot/efi
М-м-м, а где /dev/sda1 ? Делаем sudo fdisk -l /dev/sda
Disk /dev/sda: 13 GiB, 13958643712 bytes, 27262976 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 4E21234A-E2D2-4ACD-B1A5-153A805FB53A Device Start End Sectors Size Type /dev/sda1 8192 16383 8192 4M BIOS boot /dev/sda2 16384 147455 131072 64M EFI System /dev/sda3 147456 2244607 2097152 1G Linux filesystem /dev/sda4 2244608 4341759 2097152 1G Linux filesystem /dev/sda5 4341760 19042303 14700544 7G Linux filesystem
Мы видим, что два раздела имеют равный размер и это не спроста. Команда sudo blkid
выводит:
/dev/sda2: LABEL="system-boot" UUID="F04F-02A0" TYPE="vfat" PARTLABEL="system-boot" PARTUUID="af77c3ad-47f6-4776-bcb7-7bbd93194fca"
/dev/sda3: LABEL="system-a" UUID="49b12f6b-124f-4c60-8e0a-c3ac0cd16b7f" TYPE="ext4" PARTLABEL="system-a" PARTUUID="c08e097b-7620-4e8d-97da-7bc973bd5b6d"
/dev/sda4: LABEL="system-b" UUID="eea23f02-a0c8-413c-be08-1f74df296f7c" TYPE="ext4" PARTLABEL="system-b" PARTUUID="81c10a98-d7e2-41b1-a1e2-ce609f0f0133"
/dev/sda5: LABEL="writable" UUID="18f18399-c4c0-41fa-8ef2-aaa9a832dd02" TYPE="ext4" PARTLABEL="writable" PARTUUID="f4217e3a-9eec-4d45-954b-36cbd71cbbfd"
/dev/sda1: PARTLABEL="grub" PARTUUID="314959ea-cd0c-4252-b15d-4c46f96f43a8"
Метки system-a и system-b намекают нам, что перед нами легендарные два раздела под систему, благодаря которым будет работать механизм rollback. В свежей системе раздел system-a будет занят системой, а system-b будет пустым, ибо отформатирован. Администратору не стоит забивать голову какой именно раздел является текущим и с которого производится загрузка. После обновления системы через sudo snappy update
оба раздела system-a/b будут содержать образ системы, только разных версий. "Snappy update" не только производит обновление системы в другой раздел, но и "переключается" между ними, делая текущим то один, то другой.
Команда sudo lsblk -f
вывела тоже самое что и blkid, только в виде ASCII дерева.
NAME FSTYPE LABEL UUID MOUNTPOINT sda |-sda1 |-sda2 vfat system-boot F04F-02A0 /boot/efi |-sda3 ext4 system-a 49b12f6b-124f-4c60-8e0a-c3ac0cd16b7f / |-sda4 ext4 system-b eea23f02-a0c8-413c-be08-1f74df296f7c /writable/cache/system `-sda5 ext4 writable 18f18399-c4c0-41fa-8ef2-aaa9a832dd02 /writable
Как говорит нам дерево, system-a активен и является корнем (/), а system-b подмонтирован в /writable/cache/system/, что намекает на его доступность для записи при обновлении системы.
Метка раздела | Дефолтный размер (Мб) | Тип ФС | Запись? | Описание |
---|---|---|---|---|
grub | 4 | Да | Файлы для загрузки | |
system-boot | 64 | vfat | Да | Файлы для загрузки |
system-a | 1024 | ext4 | Нет | Primary root filesystem |
system-b | 1024 | ext4 | Нет | Secondary root filesystem |
writable | Всё оставшееся место | ext4 | Да | Все данные пользователя |
Давайте выведем примонтированные вещи и получим инфаркт! mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) udev on /dev type devtmpfs (rw,relatime,size=500376k,nr_inodes=125094,mode=755) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=101684k,mode=755) /dev/sda4 on / type ext4 (ro,relatime,data=ordered) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,mode=755) /dev/sda5 on /writable type ext4 (rw,relatime,discard,data=ordered) tmpfs on /etc/fstab type tmpfs (rw,nosuid,noexec,relatime,mode=755) /dev/sda5 on /etc/systemd/system type ext4 (rw,relatime,discard,data=ordered) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset,clone_children) cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio) tmpfs on /etc/machine-id type tmpfs (ro,relatime,size=101684k,mode=755) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=21,pgrp=1,timeout=300,minproto=5,maxproto=5,direct) debugfs on /sys/kernel/debug type debugfs (rw,relatime) mqueue on /dev/mqueue type mqueue (rw,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime) fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime) /dev/sda5 on /etc/sudoers.d type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /etc/ssh type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /var/lib/system-image type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /usr/share/click/frameworks type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /etc/sysctl.d type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /var/lib/apparmor type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /apps type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /etc/writable type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /var/log type ext4 (rw,relatime,discard,data=ordered) tmpfs on /tmp type tmpfs (rw,relatime) /dev/sda5 on /var/lib/dhcp type ext4 (rw,relatime,discard,data=ordered) tmpfs on /var/lib/sudo type tmpfs (rw,relatime,mode=700) /dev/sda5 on /var/lib/initramfs-tools type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /root type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /var/tmp type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /etc/udev/rules.d type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /var/lib/apps type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /etc/hosts type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /var/lib/cloud type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /var/lib/systemd/random-seed type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /etc/network/interfaces.d type ext4 (rw,relatime,discard,data=ordered) tmpfs on /mnt type tmpfs (rw,relatime) /dev/sda5 on /var/lib/dbus type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /var/lib/logrotate type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /var/lib/snappy type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /etc/dbus-1/system.d type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /etc/apparmor.d/cache type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /var/cache/apparmor type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /var/lib/extrausers type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /oem type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /home type ext4 (rw,relatime,discard,data=ordered) /dev/sda5 on /etc/ufw type ext4 (rw,relatime,discard,data=ordered) /dev/sda3 on /writable/cache/system type ext4 (ro,relatime,data=ordered) /dev/sda2 on /boot/efi type vfat (rw,relatime,sync,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro) /dev/sda2 on /boot/grub type vfat (rw,relatime,sync,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro) tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=101684k,mode=700,uid=1000,gid=1000)
Что интересного даёт вывод mount?
date | sudo tee -a /etc/network/interfaces
Продолжение статьи "Личное знакомство с Ubuntu Snappy Core. Часть 2."
Дата последней правки: 2023-12-28 11:22:56