History log of /freebsd-9.3-release/lib/libdisk/open_disk.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 267654 19-Jun-2014 gjb

Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 225736 22-Sep-2011 kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by: re (implicit)


# 188408 09-Feb-2009 lulf

- Sanitize disk parameters retrieved from GEOM, as they are not guaranteed to
have sane values. It caused sysinstall to crash when installing on certain SD
cards.

Discussed with: marcel


# 178451 23-Apr-2008 marcel

Add support for gpart:
o Correct for gpart's 1-based index, versus 0-based index used by
legacy slicers.
o Parse and understand the xs and xt parameters.


# 172285 21-Sep-2007 marcel

On PowerPC, geom_part has taken over the partitioning from geom_apple.
Translate partitions of type "PART" to chunks of type "apple" on
PowerPC. This fixes sysinstall.

Approved by: re (kensmith)


# 171734 05-Aug-2007 rink

Improve error handling in libdisk while parsing the kern.geom.conftxt sysctl.
Previously, any parse error will result in the calling program exiting with an
unpleasant message. This change will cause libdisk to issue a warning and
ignore lines it cannot parse instead of bluntly terminating the unfortunate
enough program.

This change will allow you to use sysinstall if you have a NTFS parition with
a space in the name (such as 'Win Xp'). In such a case, a line like the
following will appear in the kern.geom.conftxt output:

2 LABEL ntfs/Win Xp 209818635264 512 i 0 o 0

As the fields are space-separated, libdisk would go beserk and exit the program.
This would happen if using FreeBSD 7.0 snapshot images (as GEOM_LABEL is in
the installation kernel as well), thus making it impossible to install FreeBSD
without renaming your NTFS paritions.

Reported by: Dwight Berendse <dwight at berendse dot org>
Nod from: phk
Reviewed by: imp
Approved by: re (bmah), imp (mentor)
MFC after: 1 month


# 143306 08-Mar-2005 stefanf

Initialise `sn' before using its value.


# 137092 31-Oct-2004 marcel

Don't barf when we encounter an UUID for GPT partitions. Instead, add
the GPT partition on i386 and adm64 as type=gpt, subtype=0 and with the
sname set to the UUID. This prevents sysinstall from bombing out. This
also makes sure the GPT partition shows up in sysinstall so as to avoid
accidental "clobberage".

PR: bin/72896


# 135153 13-Sep-2004 pjd

We have now so many GEOM classes that it is better to just skip unknown
classes than exiting.

Reviewed by: le
OK'ed by: phk


# 135145 13-Sep-2004 le

Ignore geom_stripe providers.

MFC in: one week


# 133032 02-Aug-2004 le

Typo in comment.


# 133028 02-Aug-2004 le

Ignore geom_vinum providers.


# 128541 21-Apr-2004 grehan

PowerPC support.

submitted by: Suleiman Souhlal <refugee@segfaulted.com>
approved by: phk, jhb


# 127595 29-Mar-2004 kuriyama

Make libdisk WARNS=4 clean.

Glanced by: jhb


# 127081 16-Mar-2004 jhb

Change libdisk and sysinstall to use d_addr_t rather than u_long for disk
addresses. For arch's with 64-bit longs, this is a nop, but for i386 this
allows sysinstall to properly handle disks and filesystems > 1 TB.

Changes from the original patch include:
- Use d_addr_t rather than inventing a blkcnt type based on int64_t.
- Use strtoimax() rather than strtoull() to parse d_addr_t's from config
files.
- Use intmax_t casts and %jd rather than %llu to printf d_addr_t values.

Tested on: i386
Tested by: kuriyama
Submitted by: julian
MFC after: 1 month


# 121888 02-Nov-2003 marcel

o Move Int_Open_Disk() from disk.c to open_disk.c for use by all
platforms except ia64 and use Int_Open_Disk() in open_ia64_disk.c
on ia64. We need to know more than GEOM can provide us so we're
forced to read from the disk. Move uuid_type() to open_ia64_disk.c
and remove all references on non-ia64.
o Pass the GEOM conftxt to Int_Open_Disk() so that only Open_Disk()
needs to know about GEOM and libdisk can more easily be used with
media not handled by GEOM.
o Create an ia64 specific definiton of struct disk on ia64, because
we don't need/have most of the fields other platforms need and
other fields not applicable on platforms other than ia64.
o Do not compile change.c on ia64. It's too PC specific.
o In Fixup_Names() in create_chunk.c, try all partition numbers
that are valid for the GPT disk. We have the total number of
partitions that can be allocated in the disk structure on ia64.
Also, use the GPT partition naming if we're creating one under
a chunk of type "whole". It's a GPT partition in that case.
o In Create_Chunk(), compile-out the PC specific code on ia64 that
checks BIOS geometry restrictions.
o In Debug_Disk() in disk.c, dump the ia64 specific fields.
o Save the partition index in the chunk on ia64 so that we can
preserve it when we write the data back to disk. This avoids that
partitions get moved around or swapped after installing FreeBSD,
which may render a disk unusable.