From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding; bh=bpO/xt7wwH9+OzdXTmaQhkTfJa7oYboeiVm5J/oR3Yc=; b=r0FnMn3jrApehowPKRO/Y0anNBiDNNPzcwPOL4wYtxR/eEfiZFAI8vF1FmfH2hS+n/ 4bKhDN/5KPLadtS/9AiBiJhJn3p7dojoCapJaT1rLws1wbKqwyqS/R4RLxWY/3xOj6v2 HI2gGee5KOj9LNWo2HuCEN3TTj4JpR4YK50O4bxznMKnWm2hhHZuE9sNe979MHruOfk/ DuMwRUoVgivp6EnjtbKCcQer3OetcMID3cIm/33H9qhY7wCsDKbZ2SJadsMD2JlGaqbL ASCOz9yItw/AN0SCt/fCr90DDPxTZrBqrkOfpLDygeRaaxlU7oiXNJ4t/vP/nkAC/wDu lb6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=bpO/xt7wwH9+OzdXTmaQhkTfJa7oYboeiVm5J/oR3Yc=; b=MkutqS8FcaJmYGUXY17aP2e4lpLU/NivX3DG4H01G0zdQ1YSZFcykSfisDtmenP832 QP/H6CwHoWja4Q8SFVwfd0oK1JKVqmWN8fiM69eO0zyti5eWbk1UKdkE7ssgJtwDarQw 73RenOiKZkDqsEhkRU5pZTq4rv4yukKfwH0mnSjk1S/sjAPjVath431H0L2GiPQbHq9b BOdxF6cXOeTZiGDC5OYXXmus2e/hz7nigJ8rG8vymmsKvZe8A8ZTmQAfEHa5kvRDCdBS Dge72sBgAScKZD/QXoh/xbZhA1mdEfqcuZWI5ikvrDs0qS4sWBX3zkWQSccufOLeA4rF W1fA== X-Gm-Message-State: APt69E3hzilP1G6r8YDFKm+8YSuRQliHpR+3XTbAG4tZQWPOH6PkVRZA p8topvn9ApyBR/pRWnH92/2Vsg== X-Google-Smtp-Source: ADUXVKL6xVY1CSMQyOrmtrQRnHTGhDVSUvmxtZzFNEO0n51OUU/+iymDILcSJPUVFwhIni8s796gCA== X-Received: by 2002:a19:1a52:: with SMTP id a79-v6mr17411294lfa.43.1529607828361; Thu, 21 Jun 2018 12:03:48 -0700 (PDT) To: devel@lists.altlinux.org References: <20180621081743.GT20609@imap.altlinux.org> From: Leonid Krivoshein Message-ID: <89da0bf5-91b4-53d1-a026-aed84dac91d2@gmail.com> Date: Thu, 21 Jun 2018 22:03:46 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <20180621081743.GT20609@imap.altlinux.org> Content-Type: text/plain; charset=koi8-r; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [devel] =?utf-8?b?0YDQsNC30LHQuNCy0LDQu9C60LAg0LTQuNGB0LrQsCAo?= =?utf-8?b?0L/QvtGH0LXQvNGDLdGC0L4g0LHRi9C70L46INCo0LDQs9C4INC40L3RgdGC?= =?utf-8?b?0LDQu9C70Y/RgtC+0YDQsCk=?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jun 2018 19:03:51 -0000 Archived-At: List-Archive: List-Post: 21.06.2018 11:17, Michael Shigorin пишет: > On Wed, Jun 20, 2018 at 12:50:21AM +0300, Leonid Krivoshein wrote: >> Поизучав исходники Каламариса, посмотрев на инсталляторы в других >> дистрибутивах, неоднократно выслушав пожелания иметь ещё и текстовый >> инсталлятор, имея собственное желание объединить систему массового >> развёртывания с инсталлятором в единое целое, поговорив с отдельными >> товарищами на эту тему, решил пока сильно шашкой не размахивать, а >> осилить "маленький, но важный кусочек", связанный с разбивкой диска, > Это ни разу не "маленький", а САМЫЙ (с большим отрывом) сложный > кусок инсталятора для разработчика и для пользователя тоже. Потому и в кавычках. :) Надо же с чего-то начать. > Его сложность обусловлена, с одной стороной, огромным наследием > самых разных устройств и вариантов организации данных на них, > а с другой -- риском потери этих данных лёгким движением руки. > > Известных мне работающих "машинок состояния", которые умеют > "держать в уме" нюансы устройств/разбивок/ФС -- ровно два: > libevms (апстрим давно умер) и libparted (который, помнится, > сделали из партеда дебианщики для своего инсталятора). Посмотрел много кода, в том числе linux-utils со всеми библиотеками, evms, код dm/md в ядре. libfdisk, используемый всеми *disk'ами, тоже ничего не меняет до последнего, но я бы не назвал её "машиной состояния". Равно как libparted, она не поможет в случае md, lvm, dm, и др... evms, подобно ядру и linux-utils, имеет описания множества структур метаданных, но, в отличии от апстрима, там некому приводить это в актуальное состояние. В результате чем дальше, тем хуже. Достаточно сравнить структуры суперблока пресловутой ext2. Я нашёл способ не использовать знания о размере и расположении метаданных, о внутренней их структуре, а также дешёвый способ штатными методами обеспечить сохранение состояния, комит и откат при необходимости. А для тех, у кого достаточно лишней оперативки или на время инсталляции (развёртывания) есть возможность выделить небольшой кусок реального диска, можно будет предложить фичу "инсталляция в режиме --dry-run" с возможным применением всех изменений только в самом конце. Но это я опять скатился к обсуждению инсталлятора. -- Best regards, Leonid Krivoshein.