Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Apr 2016 14:48:39 +0200 (CEST)
From:      =?ISO-8859-1?Q?Trond_Endrest=F8l?= <Trond.Endrestol@fagskolen.gjovik.no>
To:        Aleksander Alekseev <afiskon@devzen.ru>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: A few stupid questions regarding MBR and boot0
Message-ID:  <alpine.BSF.2.20.1604141444310.14591@mail.fig.ol.no>
In-Reply-To: <20160414153627.7fc50247@fujitsu>
References:  <20160414144849.7a08b1db@fujitsu> <alpine.BSF.2.20.1604141353310.14591@mail.fig.ol.no> <20160414153627.7fc50247@fujitsu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 14 Apr 2016 15:36+0300, Aleksander Alekseev wrote:

> Hello, Trond
> 
> Thanks for your replies.

NP.

> > > 1) If I understand correctly first 512 bytes of /dev/ad0
> > > and /boot/boot0 file should match, but they don't:
> > > 
> > > http://afiskon.ru/s/31/665dc9755c_mbr.txt
> > 
> > The MBR consists of two parts, the bootcode and the partition table. 
> > Any discrepancies is generally due to the partition table being zero 
> > in /boot/boot0 and realistic data stored in block 0.
> 
> Yes, but if I'm not mistaken partition table starts only at 0x1be. But
> in my case data is not just slightly different in last few bytes. Its
> not the same at all.
> 
> > BTW, check out /boot/mbr.
> 
> OK, this looks like something I have on ad0. But this file is not
> mentioned in corresponding chapters of Handbook [1] or Architecture
> Handbook [2]. Besides Architecture Handbook clearly states:
> 
> """
> Indeed, boot0 /is/ the MBR.
> """
> 
> If /boot/boot0 is MBR then what is /boot/mbr? Current version of
> Handbook mentions it twice in 18.3.2 and doesn't exactly explains what
> this file is for. According to FreeBSD 8.4 Handbook [3]:
> 
> """
> By default, the MBR installed by fdisk(8) is such an MBR and is based
> on /boot/mbr.
> """

fdisk(8) is an outdated tool. gpart(8) is the current tool.

> Do I right understand that current version of Handbook is wrong
> regarding:
> 
> """
> The MBR installed by the FreeBSD installer is based on /boot/boot0.
> """
> 
> ... and in fact boot0 is only used in dual-boot case?

It could be. I'm not a committer, merely a user.

> BTW `cd sys/boot/i386/mbr && make` works as expected.
> 
> > I have never attempted to build the FreeBSD sources outside /usr/src. 
> > The advice below might be plain wrong.
> > 
> > Try:
> > 
> >   cd sys/boot/i386/boot0
> >   make clean
> >   make OBJDIR=/usr/home/eax/freebsd-obj obj
> >   make OBJDIR=/usr/home/eax/freebsd-obj all
> > 
> > If you want it installed, run
> > 
> >   make OBJDIR=/usr/home/eax/freebsd-obj install
> > 
> 
> Doesn't work:
> 
> ```
> $ make OBJDIR=/usr/home/eax/freebsd-obj obj
> mkdir: /usr/obj/usr: Permission denied
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/home/eax/freebsd-src/sys/boot/i386/boot0
> ```
> 
> I also tried `OBJDIR=... make`. Naturally I could try `sudo make ...`
> but if I'm not wrong boot0 doesn't have any dependencies, it's a
> reasonably simple assembly program.

Try:

  make MAKEOBJDIRPREFIX=/usr/home/eax/freebsd-obj xxx

That should place the object tree in /usr/home/eax/freebsd-obj and 
avoid polluting the source tree.

> [1]https://www.freebsd.org/doc/handbook/boot-introduction.html
> [2]https://www.freebsd.org/doc/en/books/arch-handbook/boot-boot0.html
> [3]https://docs.freebsd.org/doc/8.4-RELEASE/share/doc/freebsd/handbook/boot-introduction.html

-- 
+-------------------------------+------------------------------------+
| Vennlig hilsen,               | Best regards,                      |
| Trond Endrestøl,              | Trond Endrestøl,                   |
| IT-ansvarlig,                 | System administrator,              |
| Fagskolen Innlandet,          | Gjøvik Technical College, Norway,  |
| tlf. mob.   952 62 567,       | Cellular...: +47 952 62 567,       |
| sentralbord 61 14 54 00.      | Switchboard: +47 61 14 54 00.      |
+-------------------------------+------------------------------------+
From owner-freebsd-hackers@freebsd.org  Thu Apr 14 12:54:40 2016
Return-Path: <owner-freebsd-hackers@freebsd.org>
Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 05257B0E858
 for <freebsd-hackers@mailman.ysv.freebsd.org>;
 Thu, 14 Apr 2016 12:54:40 +0000 (UTC)
 (envelope-from afiskon@devzen.ru)
Received: from relay14.nicmail.ru (relay14.nicmail.ru [195.208.3.99])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id AFA7717C3
 for <freebsd-hackers@freebsd.org>; Thu, 14 Apr 2016 12:54:39 +0000 (UTC)
 (envelope-from afiskon@devzen.ru)
Received: from [109.70.25.225] (port=55695 helo=fujitsu)
 by f19.mail.nic.ru with esmtp (Exim 5.55)
 (envelope-from <afiskon@devzen.ru>)
 id 1aqgn5-000PEC-9h; Thu, 14 Apr 2016 15:54:35 +0300
Received: from [93.174.131.138] (account afiskon@devzen.ru HELO fujitsu)
 by proxy03.mail.nic.ru (Exim 5.55)
 with id 1aqgn4-0004A6-QI; Thu, 14 Apr 2016 15:54:34 +0300
Date: Thu, 14 Apr 2016 15:53:57 +0300
From: Aleksander Alekseev <afiskon@devzen.ru>
To: Trond =?UTF-8?B?RW5kcmVzdMO4bA==?= <Trond.Endrestol@fagskolen.gjovik.no>
Cc: freebsd-hackers@freebsd.org
Subject: Re: A few stupid questions regarding MBR and boot0
Message-ID: <20160414155357.5990adc6@fujitsu>
In-Reply-To: <alpine.BSF.2.20.1604141444310.14591@mail.fig.ol.no>
References: <20160414144849.7a08b1db@fujitsu>
 <alpine.BSF.2.20.1604141353310.14591@mail.fig.ol.no>
 <20160414153627.7fc50247@fujitsu>
 <alpine.BSF.2.20.1604141444310.14591@mail.fig.ol.no>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-BeenThere: freebsd-hackers@freebsd.org
X-Mailman-Version: 2.1.21
Precedence: list
List-Id: Technical Discussions relating to FreeBSD
 <freebsd-hackers.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/freebsd-hackers>, 
 <mailto:freebsd-hackers-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-hackers/>;
List-Post: <mailto:freebsd-hackers@freebsd.org>
List-Help: <mailto:freebsd-hackers-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/freebsd-hackers>, 
 <mailto:freebsd-hackers-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Apr 2016 12:54:40 -0000

> Try:
> 
>   make MAKEOBJDIRPREFIX=/usr/home/eax/freebsd-obj xxx
> 
> That should place the object tree in /usr/home/eax/freebsd-obj and 
> avoid polluting the source tree.
> 

`make ... obj` works, `make ... all` fails with the same error as
before.


-- 
Best regards,
Aleksander Alekseev
http://eax.me/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.20.1604141444310.14591>