Just Enough Chimera Linux ☯ Дэниел Уэйн Армстронг

Just Enough Chimera Linux ☯ Дэниел Уэйн Армстронг


Последний раз редактировалось 16 апреля 2026 г.


С тегами #chimera #linux #encrypt #zfs #zfsbootmenu

Chimera Linux — это восхитительный дистрибутив Linux, управляемый сообществом, созданный с нуля, который делает все по-другому: musl вместо типичного glibc для библиотеки C, dinit над systemd для инициализации системы и пользовательское пространство, полученное из основных инструментов FreeBSD.

Использование Химеры base install image и прорабатываю это превосходное руководство по установке для настройки Chimera с помощью OpenZFS файловая система и ZFSBootМеню загрузчик, я показываю выбор, который я делаю для создания зашифрованная минимальная система Linux с «достаточно», чтобы обеспечить прочную основу для дальнейшего развития: будь то настройка настольного компьютера, ноутбука или сервера.

Just Enough Chimera Linux ☯ Дэниел Уэйн Армстронг



1. Начните здесь

Если в этом HOWTO вы видите квадратные скобки () в блоках кода это означает, что слово кода (включая квадратные скобки) следует заменить чем-то другим. Это подробно описано в инструкциях до или после блока кода.

Chimera Linux устанавливается как единственная операционная система на один диск с использованием трехраздельной структуры:

  • Раздел esp служит системным разделом EFI и отформатирован с помощью fat32 файловая система.
  • Раздел swap предоставляет пространство подкачки с шифрованием благодаря dm-crypt.
  • Раздел pool содержит корневую файловую систему и отформатирован с помощью zfs файловая система с использованием собственного шифрования.

Несколько предположений:

  • Целевое устройство x86_64 архитектура, использующая UEFI для загрузки.
  • Безопасная загрузка отключена на целевом устройстве.
  • Доступ к сети во время установки осуществляется через проводной интерфейс.
  • Система не требует поддержки спящего режима.

Получить установочный образ

Последние установочные образы ISO (на данный момент 20251220) доступны здесь: repo.chimera-linux.org.

Скачать chimera-linux-x86_64-LIVE-20251220-base.iso, sha256sums.txt файл, затем проверьте целостность образа:

sha256sum -c --ignore-missing sha256sums.txt

Подготовьте установочный USB-носитель

Запишите программу установки на отключенное USB-устройство хранения данных, на котором работает dd команду от имени root.

ПРЕДУПРЕЖДЕНИЕ
Будьте очень внимательны и обратите внимание на правильное устройство (которое можно идентифицировать по lsblk команда). Все содержимое устройства будет потеряно!

Пример. Если в системе Linux USB-накопитель отображается как sdx1затем напишите установщик в sdx (опустить номер раздела):

dd bs=4M conv=fsync oflag=direct status=progress if=chimera-linux-x86_64-LIVE-20251220-base.iso of=/dev/sdx

2. Настройте живую среду

Загрузите целевое устройство с установочного носителя Chimera. Логин и пароль есть root:chimera.

Установить более крупный шрифт консоли

Если существующий размер шрифта кажется слишком маленьким, выполните:

setfont -d

… увеличится вдвое.

Консольные шрифты расположены в /usr/share/consolefonts/ и другой шрифт можно установить с помощью setfont опуская путь и расширение файла.

Установить временную консольную клавиатуру

Раскладка клавиатуры консоли по умолчанию: us. Доступные раскладки клавиш перечислены в /usr/share/keymaps/.

Если требуется какая-то другая раскладка клавиатуры, временно установите другую раскладку клавиатуры с помощью loadkeys:

loadkeys (keymap)

…где (keymap) — желаемая раскладка клавиатуры.

Пример: я настраиваю систему на использование предпочитаемого мной colemak макет, который доступен в /usr/share/keymaps/i386/colemak:

loadkeys colemak/en-latin9

Проверьте режим загрузки

Убедитесь, что целевое устройство использует режим загрузки UEFI:

cat /sys/firmware/efi/fw_platform_size

Если команда возвращает 64затем система загружается в UEFI с 64-разрядной версией UEFI x64, и все готово.

ПРИМЕЧАНИЕ
Если файл не существует, устройство не использует UEFI.

Подключиться к Интернету

Проводные сетевые интерфейсы должны автоматически включаться и подключаться при загрузке.

Убедитесь, что сетевой интерфейс активен, ему присвоен адрес и доступен Интернет:

ip addr
ping -c 5 chimera-linux.org

Удаленный вход в установщик

Упростите процесс установки вручную (например, команды вырезания и вставки), удаленно войдя в программу установки через ssh с другого компьютера.

Запустите sshd демон:

dinitctl start sshd

Переключитесь на другой компьютер и ssh в целевое устройство как anon:chimera:

ssh anon@(ip_address)

… где (ip_address) — это адрес целевого устройства, полученный с помощью ip addr команда выше.

Переключиться на root:

doas -s

Определить переменную идентификатора

Файл /etc/os-release определяет переменные, описывающие текущую операционную систему. Используйте $ID переменная для установки короткого имени дистрибутива Linux в последующих командах:

. /etc/os-release && export ID && echo $ID

Создать хостид

Генерировать hostid Шестнадцатеричный идентификатор для использования ZFSBootMenu:

zgenhostid "$(hostid)" && hostid

ПРИМЕЧАНИЕ
Мусл не читает /etc/hostid и всегда будет отображаться 00000000. Это не проблема.

3. Подготовьте ДИСК

Перед выполнением базовой установки Chimera настройте собственную структуру разделов на одном диске.

Установить:

apk update && apk add --no-interactive gptfdisk parted

Определить переменные DISK

Определите диск, на который будет установлена ​​Chimera, перечислив блочные устройства:

lsblk -f

Установите переменные DISK для диска SATA или NVMe:

САТА

Пример диска: sda

export DISK="/dev/sda"
export ESP_PART="1"
export SWAP_PART="2"
export POOL_PART="3"
export ESP_DEVICE="${DISK}${ESP_PART}"
export SWAP_DEVICE="${DISK}${SWAP_PART}"
export POOL_DEVICE="${DISK}${POOL_PART}"
echo $ESP_DEVICE && echo $SWAP_DEVICE && echo $POOL_DEVICE

NVMe

Пример диска: nvme0n1

export DISK="/dev/nvme0n1"
export ESP_PART="1"
export SWAP_PART="2"
export POOL_PART="3"
export ESP_DEVICE="${DISK}p${ESP_PART}"
export SWAP_DEVICE="${DISK}p${SWAP_PART}"
export POOL_DEVICE="${DISK}p${POOL_PART}"
echo $ESP_DEVICE && echo $SWAP_DEVICE && echo $POOL_DEVICE

Очистить ДИСК

Если ранее на DISK существовал пул ZFS, запустите:

zpool labelclear -f $DISK

Если DISK ранее был настроен с помощью LVM, отключите группу томов:

vgchange -an

Очистите существующие файловые системы и таблицу разделов на ДИСКЕ:

wipefs -af $DISK && sgdisk --zap-all --clear $DISK

Сообщите системе об изменениях таблицы разделов:

partprobe $DISK

Раздел ДИСК

ПРИМЕЧАНИЕ
Многие руководства по разбиению разделов выделяют 256–512 МБ пространства для системного раздела EFI. Мне хотелось бы подготовить этот раздел к будущему для всего, что Linux захочет там хранить, выделив более щедрое пространство в 2 ГБ.

Создайте таблицу разделов GPT на ДИСКЕ со следующей разметкой:

Число Размер Код Формат Использовать как Точка монтирования
1 ef00 жирный Системный раздел EFI /boot/ефи
2 8200 менять Раздел подкачки (непригодный)
3 ->КОНЕЦ bf00 zfs Раздел пула ZFS /

Создайте системный раздел EFI:

sgdisk -n "${ESP_PART}:1m:+2g" -t "${ESP_PART}:ef00" -c 0:esp $DISK

Создайте раздел подкачки:

sgdisk -n "${SWAP_PART}:0:+8g" -t "${SWAP_PART}:8200" -c 0:swap $DISK

Создайте раздел пула ZFS:

sgdisk -n "${POOL_PART}:0:0" -t "${POOL_PART}:bf00" -c 0:pool $DISK

Отображение структуры ДИСКА:

partprobe $DISK && sgdisk -p $DISK

4. Создание пула ZFS

При добавлении дисков или разделов в пулы ZFS рекомендуется ссылаться на них с помощью символических ссылок, созданных в /dev/disk/by-partuuid (UEFI), чтобы ZFS идентифицировала нужные устройства, даже если в какой-то момент имя диска изменится. Использование традиционных узлов устройств, таких как /dev/sda2 может вызвать периодические сбои импорта.

Поэтому я создаю POOL_ID переменная:

POOL_ID=/dev/disk/by-partuuid/$( blkid -s PARTUUID -o value $POOL_DEVICE )

Проверять:

ls -al /dev/disk/by-partuuid/ && echo "POOL_ID = $POOL_ID"

Создать ключевой файл шифрования

Сохраните парольную фразу шифрования для пула ZFS в ключевом файле:

echo 'SuperSecretPassphrase' > /etc/zfs/zroot.key
chmod 000 /etc/zfs/zroot.key

Создать зашифрованный пул ZFS

Создайте пул с включенным собственным шифрованием:

zpool create -f \
 -o ashift=12 \
 -o autotrim=on \
 -o compatibility=openzfs-2.3-linux \
 -O acltype=posixacl \
 -O xattr=sa \
 -O compression=lz4 \
 -O encryption=aes-256-gcm \
 -O keylocation=file:///etc/zfs/zroot.key \
 -O keyformat=passphrase \
 -O relatime=on \
 -m none zroot "$POOL_ID"

Создание наборов данных ZFS

ПРИМЕЧАНИЕ
Необходимо явно указать canmount=noauto в каждой создаваемой вами загрузочной среде.

zfs create -o mountpoint=none zroot/ROOT
zfs create -o mountpoint=/ -o canmount=noauto zroot/ROOT/${ID}

Установите предпочтительную загрузочную файловую систему:

zpool set bootfs=zroot/ROOT/${ID} zroot

Я создаю дополнительный home набор данных для каждой системы:

zfs create zroot/ROOT/${ID}/home

Это позволяет мне сохранять файлы конфигурации пользователя уникальными для каждой среды загрузки, которую я могу создать в будущем. Он также отделяет пользовательские данные от системных данных, что полезно для снимков ZFS и позволяет выполнять откат системы, оставляя пользовательские данные нетронутыми.

Чтобы обмениваться данными между загрузочными средами, я создаю data набор данных для хранения общих файлов:

zfs create -o mountpoint=/data zroot/data

Пул экспорта и реимпорта для установки

zpool export zroot
zpool import -N -R /mnt zroot
zfs load-key -L prompt zroot

Установить наборы данных:

zfs mount zroot/ROOT/${ID}
zfs mount zroot/ROOT/${ID}/home
zfs mount zroot/data

Проверять:

# mount -t zfs
zroot/ROOT/chimera on /mnt type zfs (rw,relatime,xattr,posixacl,casesensitive)
zroot/ROOT/chimera/home on /mnt/home type zfs (rw,relatime,xattr,posixacl,casesensitive)
root/data on /mnt/data type zfs (rw,relatime,xattr,posixacl,casesensitive)

Обновите символические ссылки устройства:

udevadm trigger

5. Установка

Установите base-full пакеты:

chimera-bootstrap /mnt

Скопируйте файлы в новую операционную систему:

cp /etc/hostid /mnt/etc/
mkdir /mnt/etc/zfs && cp /etc/zfs/zroot.key /mnt/etc/zfs/

6. Настройте новую систему

Выполните chroot в только что установленную Chimera и настройте новую ОС.

Введите chroot

chimera-chroot /mnt

Установить пароль root

passwd

Создать суперпользователя

Создайте учетную запись пользователя с правами суперпользователя:

useradd -m -G wheel (username)

… где (username) — желаемое имя учетной записи.

Установите пароль для (username):

passwd (username)

(Необязательно) Дайте root доступ к (username) без пароля, используя doas команда:

echo 'permit nopass keepenv (username)' >> /etc/doas.conf

Менеджер пакетов и дополнительные пакеты

Добавьте user субрепо и зеркала синхронизации:

apk add --no-interactive chimera-repo-user && apk update

Определите производителя процессора:

grep vendor_id /proc/cpuinfo

Определите переменную для соответствующего пакета микрокода для загрузки обновлений и исправлений безопасности:

UCODE="(vendor)"

… где (vendor) для процессоров Intel ucode-intel и процессоры AMD ucode-amd.

Установить:

apk add --no-interactive $UCODE linux-lts-zfs-bin cryptsetup cryptsetup-scripts-initramfs-tools curl efibootmgr font-terminus

Установить шрифт консоли

ПРИМЕЧАНИЕ
Для terminus настройки шрифта см. /usr/share/consolefonts/README.Lat2-Terminus16 для получения подробной информации.

Химера использует то же самое console-setup система как Debian.

Пример: использовать TerminusBold в качестве шрифта консоли и увеличьте размер шрифта, изменив /etc/default/console-setup:

ACTIVE_CONSOLES="/dev/tty(1-6)"

CHARMAP="UTF-8"

CODESET=guess
FONTFACE=TerminusBold
FONTSIZE=14x28

Установить консольную клавиатуру

Клавиатура по умолчанию us. Если требуется альтернативная раскладка клавиатуры, см. keyboard(5) для вариантов.

Пример: мне нравится использовать colemak раскладка клавиатуры (доступна в /usr/share/keymaps/i386/colemak), который я установил, изменив /etc/default/keyboard:

KMAP=colemak/en-latin9

XKBMODEL=pc105
XKBLAYOUT=us

Установить часовой пояс

Часовые пояса расположены в /usr/share/zoneinfo/(Region)/(City)где (Region) это географический регион (Африка, Америка, Европа, …) и (City) внутри этого региона.

Пример: Создайте /etc/localtime символическая ссылка на часовой пояс, где Toronto находится:

ln -sf /usr/share/zoneinfo/America/Toronto /etc/localtime && date

Назначить имя хоста

Создайте hostname файл:

echo (hostname) > /etc/hostname

… где (hostname) — желаемое имя системы (одно слово, без пробелов):

echo chimeralinux > /etc/hostname

Включить службы

Ссылки на сервисы, включенные администратором, находятся в /etc/dinit.d/boot.d/.

Система журналирования по умолчанию на Chimera: syslog-ng.

Включите услугу:

dinitctl -o enable syslog-ng

Логи записываются в /var/log/messages.

Вы можете настраивать проводные сети статически или динамически с помощью dhcpcd.

Включите услугу:

dinitctl -o enable dhcpcd

Действие по умолчанию предназначено для dhcpcd настроить все интерфейсы с DHCP. Изменения вносятся в /etc/dhcpcd.conf. Видеть dhcpcd.conf(5) для более подробной информации.

Включите sshd сервис для разрешения удаленного входа в систему:

dinitctl -o enable sshd

Отформатируйте и смонтируйте раздел ESP

ПРИМЕЧАНИЕ
Метки файловых систем необязательны, но полезны. Они являются более надежным способом определения правильного раздела, чем простые узлы устройств, и позволяют легко монтировать без UUID.

Создайте fat32 файловая система:

mkfs.fat -n ESP -F 32 $ESP_DEVICE

Крепление устройства:

mount --mkdir $ESP_DEVICE /boot/efi

Добавить раздел в fstab:

echo 'LABEL=ESP /boot/efi vfat defaults 0 0' >> /etc/fstab

Включить шифрование подкачки

Использование сырого dm-crypt позволяет системе генерировать случайный одноразовый ключ шифрования при загрузке, который не требует никаких действий со стороны пользователя для шифрования swap. При выключении ключ удаляется, в результате чего все оставшиеся данные фактически уничтожаются.

Чтобы разрешить использование метки (как это делалось ранее с ESP) для идентификации раздела подкачки, который может пережить перезапись, можно использовать смещение подкачки. Создайте это смещение, записав крошечную пустую файловую систему на SWAP_DEVICE, единственная цель которой — предоставить постоянную метку для создания подкачки:

mkfs.ext2 -L cryptswap $SWAP_DEVICE 1M

Настроить dm-crypt чтобы настроить обмен на этом cryptswap раздел при загрузке, добавив запись в crypttab:

echo 'swap LABEL=cryptswap /dev/urandom plain,swap,offset=2048,cipher=aes-xts-plain64,size=512,sector-size=4096' >> /etc/crypttab

Добавьте устройство подкачки в fstab:

echo '/dev/mapper/swap none swap defaults 0 0' >> /etc/fstab

Восстановить initramfs

Ключ шифрования хранится в /etc/zfs и будет автоматически скопирован в initramfs.

Набор UMASK=0077 в качестве разрешений по умолчанию для вновь создаваемых файлов и каталогов:

mkdir -p /etc/initramfs-tools/conf.d
echo 'UMASK=0077' > /etc/initramfs-tools/conf.d/umask.conf

… и установил RESUME=none отключить cryptsetup команда проверки/предупреждения об отсутствии поддержки спящего режима/возобновления в нашем разделе подкачки:

echo 'RESUME=none' > /etc/initramfs-tools/conf.d/resume

Регенерировать:

update-initramfs -u -k all

Любые предупреждающие сообщения вроде:

cryptsetup: WARNING: Couldn't determine root device

… можно смело игнорировать. В этом случае сценарий ищет корневое сопоставление, которое не завершается (корневое шифрование обрабатывается в ZFS).

Установите загрузчик ZBM для поддержки Корень на ZFS загрузочные среды в Linux.

Свойства загрузки

ПРИМЕЧАНИЕ
Добавьте hibernate=no аргумент, гарантирующий, что ни один процесс не может инициировать действие приостановки на диске, что соответствует цели использования эфемерной замены случайных ключей.

Назначьте аргументы командной строки, которые будут использоваться при загрузке ядра:

zfs set org.zfsbootmenu:commandline="quiet hibernate=no" zroot/ROOT

Настройте кэширование ключей:

zfs set org.zfsbootmenu:keysource="zroot/ROOT/${ID}" zroot

Готовый исполняемый файл

Установите готовый исполняемый файл ZBM в ESP:

mkdir -p /boot/efi/EFI/ZBM
curl -o /boot/efi/EFI/ZBM/VMLINUZ.EFI -L https://get.zfsbootmenu.org/efi
cp /boot/efi/EFI/ZBM/VMLINUZ.EFI /boot/efi/EFI/ZBM/VMLINUZ-BACKUP.EFI

Загрузочные записи EFI

efibootmgr -c -d "$DISK" -p "$ESP_PART" -L "ZFSBootMenu (Backup)" -l '\EFI\ZBM\VMLINUZ-BACKUP.EFI'
efibootmgr -c -d "$DISK" -p "$ESP_PART" -L "ZFSBootMenu" -l '\EFI\ZBM\VMLINUZ.EFI'

8. Завершить

Выйдите из chroot, размонтируйте и экспортируйте

Выход из chroot:

exit

Размонтируйте все:

umount /mnt/home && umount /mnt/data && umount /mnt/boot/efi && umount -n -R /mnt

Экспортируйте zpool:

zpool export zroot

Перезагрузить

reboot

ПРИМЕЧАНИЕ
Когда будет предложено ввести парольную фразу для разблокировки zpool, раскладка клавиатуры будет us независимо от раскладки клавиатуры, которая могла быть установлена ​​в системе.

Пользователю будет предложено ввести парольную фразу для разблокировки зашифрованного корневого раздела. В случае успеха загрузка возобновляется:

chimeralinux login:

Добро пожаловать в Химеру!

9. Ресурсы

Следующий: Chimera Linux: после первой загрузки (ВСЕ)

Вы можете поставить лайк, поделиться или прокомментировать этот пост на Fediverse 💬



Source link

Postagens Similares

  • பக்கம் கிடைக்கவில்லை | சிறிய அணுக்கள்

    பிழை செய்தி முடக்கப்பட்ட ஸ்கிரிப்ட்களைக் கையாளப் பயன்படும் EU குக்கீ இணக்க JavaScript கோப்பைப் படிக்க முடியவில்லை. உங்கள் கோப்பு முறைமையில் சிக்கல் இருக்கலாம் அல்லது கோப்பு காணாமல் போயிருக்கலாம். EU குக்கீ இணக்க அமைப்புகள் பக்கத்தை அணுகி படிவத்தை மீண்டும் சேமிக்கவும். Source link

  • 恥ずかしくない、質素なデートナイトのアイデア 17 選

    夫と私は結婚して約 14 年になりますが、その前は 6 年以上一緒にいました。 今でも、私たちは関係にその輝きを保つために真剣に努力しています。私たちは子供たちのいない、私たちだけの時間を確保しました。お互いに好きなことをするときもあれば、どちらかが好きなことを交代でやるときもあります。 私たちはこれをデートナイトと呼んでいます。週に1、2回、私たち2人だけの夜をブロックします。通常は子供たちが寝た後です。私たちは翌日寝られる夜に計画するようにしています。そうすれば、夜更かしして、中断されることなく一緒に数時間を楽しむことができます。 最も重要なのは、その時間を守ることです。私たちが何をするかは、私たちが一緒にいてお互いに集中しているという事実ほど重要ではありません。それが私たちの結婚をうまく機能させ、私たちの結婚生活を強力に保つものです。 私たちのデートの夜のほとんどはシンプルで低コストです。時間が経つにつれ、大切なのはお金を使うことではなく、一緒に時間を過ごすことだということに気づきました。もちろん、たまには素敵なレストランに出かけるのも楽しいですが、お気に入りの夜は家で過ごすシンプルな夜です。 私たちのデートの夜の多くは家で起こりますが、それは主に子供がいるからです。外出するには通常、ベビーシッターを探す必要があり、費用と計画が追加されます。留まることで物事が楽になります。 何年にもわたって、私は試したさまざまな夜のデートのリストを保管してきました。頻繁に繰り返すものもあれば、少し調整するものもありますが、結果はすべて同じになります。 こうした夜は、私たちがつながりを保つのに役立ちます。すべてのアイデアが特別だからではなく、私たちがお互いのために現れ、その時間を一緒に過ごすからです。 ここで、あなたも試してみたくなるアイデアがいくつか見つかることを願っています。 おうちで映画鑑賞の夜 大きなボウルにポップコーンを作って、毛布の下で一緒に映画を見たり、シリーズをむしゃむしゃ食べたりします。長い一日の後にはとても簡単なので、これが私たちの頼りになるデートの夜です。 私たちの一人が就寝時間を管理し、もう一人が見るものを選び、ポップコーンを作り、毛布を数枚取ります。それから私たちはソファに座ってくつろぎ、数時間一緒にリラックスします。シンプルですが、いつもリセットされるような気分になります。 深夜の散歩を一緒に 子供たちが友達の家に泊まる夜には、私たちは一緒に長い散歩に行く機会があります。私たちは近所を歩き回り、時には静かな場所へ少し離れて、夜空の下で二人だけで過ごします。 ほとんどの場合、私たちは人生やふとした考えなど、思いついたことについて話しているだけです。シンプルですが、これらの会話は最終的には大きな意味を持ちます。 一緒に何かを焼く 時々、翌朝のためにクッキー、パン、スコーンなどの簡単なおやつを一緒に作ります。材料を取り出し、話し合いながらすべてを混ぜ、キッチンでくつろぎながら焼きます。 完成したら、たいていすぐに温かいものをシェアします。それは私たちに話したり、一緒に何かをしたり、一緒に作ったものを楽しむ時間を与えてくれます。 ハイキングとピクニックデート 子供たちといない時間があるときは、これがデフォルトの日付です。 朝、簡単なお弁当を作ってバックパックに入れて、近くの公園やトレイルへ向かいます。私たちは通常、ベンチ、テーブル、または毛布を敷くことができる静かな場所など、座るのに最適な場所を見つけるために事前にチェックします。 私たちはゆっくりと散歩をし、会話をし、景色を楽しみます。目的の場所に着いたら、座って一緒に食事をし、ゆっくりと戻ります。あまり費用をかけずに完全にリセットしたように感じる日付の 1 つです。 クリエイティブなプロジェクトに一緒に取り組む 時々、私たちは一緒に創造的なことに取り組むために夜を過ごします。つい最近まで、私たちは座って、子供たちと遊ぶゲーム用の大きな都市地図を描きました。 私たちは街路や建物の計画と、ただ人生について話すことの間を行ったり来たりしました。結局、それは長い間私たちのお気に入りの夜の一つになりました。 私たちは以前にも、小さな人物を描いたり、アイデアをスケッチしたりするなど、同様のことを行ったことがあります。会話するスペースを確保しながら、何かに集中することができ、その会話は常に最高の部分になります。 公園での無料コンサート 時々、私たちの町や近くで無料のコンサートが開催されるので、それを利用するのが大好きです。 簡単なピクニックの準備をし、毛布を持って、夕方に出かけます。私たちは日が沈むまで一緒に座って食事をし、音楽を聴きます。 星が現れる頃には、あまりお金をかけずに、気楽で完璧な夜を過ごすことができるようになります。 ボードゲームとワイン ワインのボトルを開けてボードゲームを取り出すこともあります。私たちは数ラウンドプレーし、話し、笑い、そしてただ一緒に少しばかばかしいことを楽しみます。 リラックスしていて気楽で、なんとなくその何気ない夜が一番楽しいものになります。 ソファで一緒に読書 私たちは二人とも読書が大好きなので、大きな毛布を手に取り、ソファにぴったりと座り、それぞれが自分の本に没頭する夜もあります。静かで居心地が良く、一緒に時間を過ごしているような気がします。 時々、立ち止まって読んだものを共有したり、ただ静かに過ごしたりすることもあります。 ポーチの静かな夜 夜には、静かな音楽を聴きながら、ワインのボトルを飲みながら、裏のポーチに座ることもあります。 これはボードゲームナイトに似ていますが、よりゆっくりと静かです。私たちは人生のこと、ふとした考え、思いついたことなどを、すべて一緒にいる静けさを楽しみながら話します。 小さなプロジェクトに一緒に取り組む 時々、小さな家のタスクを選んで一緒にやりましょう。何かを修理したり、壁にパッチを当てたり、子供のおもちゃを修理したりすることかもしれません。 一人が主導権を握り、もう一人が手伝いながら、やりながらそれを見つけていきます。華やかではありませんが、並べて何かを成し遂げるのは気分が良いです。 一緒に何かアクティブなことをする 時々、テニスのカジュアルなゲームをするなど、何かアクティブなことをすることもあります。近くにコートのある公園があるので、行ったり来たりして、下手なショットを笑いながらひたすら打ちます。それは深刻なことではなく、ただ移動して一緒に時間を過ごすための楽しい方法です。 多くの場合、その後、特に夕方に散歩を組み合わせます。それは、外に出て頭をすっきりさせ、お互いの付き合いを楽しむための簡単な方法です。 楽しみながらオープンハウス巡り 時々、少しドレスアップしてオープンハウスを見に行きます。それが本当に素敵な家の場合は特にそうです。実際に購入しなくても、実際に見て回って、すべてがどのようにデザインされているかを見るのは楽しいです。 ほとんどの場合、レイアウトから細部に至るまで、好きなことと嫌いなことについて話し合うことになります。それは、一緒に時間を過ごし、いつか家に何が欲しいかを少し夢見る驚くほど楽しい方法になります。 一緒にジオキャッシングを行う…

  • Come avere una vendita di garage redditizia nel 2026 (anche senza garage)

    La maggior parte delle persone tratta le vendite di garage come un evento di pulizie di primavera. Questo è l’errore. Se ti avvicini casualmente, guadagnerai $ 150 e lo chiamerai un giorno. Se lo tratti come un breve termine attività di rivenditapuoi facilmente trasformare il disordine indesiderato in oltre $ 1.000 in un fine settimana….

  • ਸੁਣੋ: ਪੰਥ ਗੁਫਾਵਾਂ – “ਮੇਰਾ ਹਿੱਸਾ” –

    “ਮੇਰਾ ਹਿੱਸਾ” ਦੀ ਇੱਕ ਆਕਰਸ਼ਕ ਪੌਪ ਸਫਲਤਾ ਹੈ ਪੰਥ ਗੁਫਾਵਾਂਸਾਲਟ ਲੇਕ ਸਿਟੀ-ਆਧਾਰਿਤ ਪ੍ਰੋਜੈਕਟ ਜਿਸ ਦੀ ਅਗਵਾਈ ਟਾਇਸਨ ਹੈਨਰੀ ਕਰ ਰਹੇ ਹਨ। ਪੈਪੀ ਰਿਦਮ, ਇੱਕ ਉਛਾਲ ਭਰਿਆ ਬਾਸ ਪੁਸ਼, ਅਤੇ ਰੌਸ਼ਨ ਸਿੰਥਸ ਇੱਕ ਉਤਸ਼ਾਹੀ ਵੋਕਲ ਡਿਲੀਵਰੀ ਦੇ ਨਾਲ ਜੋੜਦੇ ਹਨ, ਇਹ ਭਰੋਸਾ ਦਿਵਾਉਂਦੇ ਹਨ ਕਿ “ਸਾਨੂੰ ਜਲਦੀ ਹੀ ਇੱਕ ਤਨਖਾਹ ਮਿਲਣ ਵਾਲੀ ਹੈ।” ਵਧੇਰੇ ਉੱਚਾ, ਪਿਆਰ…

  • Avinash Kaushik mówi, że należy teraz renegocjować – opłaty za SEO od 25% do 75% niższe

    Avinash Kaushik spędził około 16 lat w Google, piastował wyższe stanowiska po stronie klienta w takich firmach jak Intuit i DirecTV, a obecnie doradza markom i agencjom jako dyrektor ds. strategii w Human Made Machine. Kiedy więc mówi marketerom, aby renegocjowali umowy agencyjne i spodziewali się oszczędności od 25% do 75% począwszy od tego miesiąca,…

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *