projects
/
rrq
/
maintain_lilo.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove and add patches
[rrq/maintain_lilo.git]
/
src
/
partition.c
diff --git
a/src/partition.c
b/src/partition.c
index 7dbbc5d99261a2772aa630fedcfa278cfa6c1181..dcd6dedd49bc78776f8da4336de0830f68ec6aad 100644
(file)
--- a/
src/partition.c
+++ b/
src/partition.c
@@
-1,13
+1,13
@@
-/* partition.c - Partition table handling
*/
-/*
-Copyright 1992-1998 Werner Almesberger.
-Copyright 1999-2005 John Coffman.
-All rights reserved.
-
-Licensed under the terms contained in the file 'COPYING' in the
-source directory.
-
-*/
+/* partition.c - Partition table handling
+ *
+ * Copyright 1992-1998 Werner Almesberger
+ * Copyright 1999-2005 John Coffman
+ * Copyright 2009-2015 Joachim Wiedorn
+ * All rights reserved.
+ *
+ * Licensed under the terms contained in the file 'COPYING'
+ * in the source directory.
+
*/
#define _GNU_SOURCE
#include <stdlib.h>
#define _GNU_SOURCE
#include <stdlib.h>
@@
-101,9
+101,9
@@
if ( !(do_md_install && extra==X_MBR_ONLY) ) {
else if ( !strncmp("NTFS", bs.par_d.system, 4)
|| anywhere(bs.sector,"NTLDR") ) ret=PTW_NTFS;
else if ( !strncmp("NTFS", bs.par_d.system, 4)
|| anywhere(bs.sector,"NTLDR") ) ret=PTW_NTFS;
-/*
check for
HPFS */
-
else if (
!strncmp("OS2", bs.par_d.system, 3)
- || anywhere(bs.sector,"OS2LDR") ) ret=PTW_OS2;
+/*
do not check for obsolete OS2_
HPFS */
+
/* else if (
!strncmp("OS2", bs.par_d.system, 3)
+ || anywhere(bs.sector,"OS2LDR") ) ret=PTW_OS2;
*/
/* check for DOS FAT */
else if (
/* check for DOS FAT */
else if (
@@
-115,10
+115,6
@@
if ( !(do_md_install && extra==X_MBR_ONLY) ) {
&& (bs.par_d.bpb.sectors_per_cluster & (bs.par_d.bpb.sectors_per_cluster-1))==0
) {
ret=PTW_DOS;
&& (bs.par_d.bpb.sectors_per_cluster & (bs.par_d.bpb.sectors_per_cluster-1))==0
) {
ret=PTW_DOS;
-#if 0
-/* this, it turns out is from Windows 98, so no caution here on NT */
- if (anywhere(bs.sector,"WINBOOT SYS")) ret+=PTW_NTFS;
-#endif
}
/* check for SWAP -- last check, as 'bs' is overwritten */
}
/* check for SWAP -- last check, as 'bs' is overwritten */
@@
-221,21
+217,19
@@
void part_verify(int dev_nr,int type)
i == PART_FAT32 ||
i == PART_FAT32_LBA ||
i == PART_FAT16_LBA ||
i == PART_FAT32 ||
i == PART_FAT32_LBA ||
i == PART_FAT16_LBA ||
- i == PART_NTFS ||
- i == PART_OS2_BOOTMGR ;
+ i == PART_NTFS ;
if (type && !Linux) {
warn("partition type 0x%02X"" on device 0x%04X is a dangerous place for\n"
" a boot sector.%s",
part_table[part].sys_ind, dev_nr,
if (type && !Linux) {
warn("partition type 0x%02X"" on device 0x%04X is a dangerous place for\n"
" a boot sector.%s",
part_table[part].sys_ind, dev_nr,
- dos ? " A DOS/Windows
/OS2
system may be rendered unbootable."
+ dos ? " A DOS/Windows system may be rendered unbootable."
"\n The backup copy of this boot sector should be retained."
: "" );
"\n The backup copy of this boot sector should be retained."
: "" );
+ fprintf (errstd, "I will assume that you know what you're doing and I will proceed.\n");
#if 0
if (!dos && !cfg_get_flag(cf_options,"ignore-table"))
die("You may proceed by using either '-P ignore' or 'ignore-table'");
#if 0
if (!dos && !cfg_get_flag(cf_options,"ignore-table"))
die("You may proceed by using either '-P ignore' or 'ignore-table'");
-#else
- if (!yesno("\nProceed? ", 0)) exit(0);
#endif
}
cyl = part_table[part].cyl+((part_table[part].sector >> 6) << 8);
#endif
}
cyl = part_table[part].cyl+((part_table[part].sector >> 6) << 8);
@@
-557,12
+551,7
@@
void do_change(void)
void preload_types(void)
{
void preload_types(void)
{
-#if 0 /* don't know if it makes sense to add these too */
- add_type("Netware", 0x64, 0x74);
- add_type("OS2_BM", 0x0a, 0x1a);
-#endif
- add_type("OS2_HPFS", 0x07, 0x17);
-
+/* add_type("OS2_HPFS", 0x07, 0x17); */
add_type("FAT16_lba", PART_FAT16_LBA, -1);
add_type("FAT32_lba", PART_FAT32_LBA, -1);
add_type("FAT32", PART_FAT32, -1);
add_type("FAT16_lba", PART_FAT16_LBA, -1);
add_type("FAT32_lba", PART_FAT32_LBA, -1);
add_type("FAT32", PART_FAT32, -1);
@@
-586,7
+575,7
@@
void do_activate(char *part, char *which)
#if 1
int part_max, count, number, fd;
struct partition pt [PART_MAX_MAX+1];
#if 1
int part_max, count, number, fd;
struct partition pt [PART_MAX_MAX+1];
-
long long
daddr [PART_MAX_MAX+1];
+
int64_t
daddr [PART_MAX_MAX+1];
int modify=0;
part_max = read_partitions(part, extended_pt ? PART_MAX_MAX : 0,
int modify=0;
part_max = read_partitions(part, extended_pt ? PART_MAX_MAX : 0,
@@
-694,7
+683,7
@@
void do_install_mbr(char *part, char *what)
if (fstat(fd,&st) < 0) die("stat: %s : %s", part,strerror(errno));
if (!S_ISBLK(st.st_mode) && !force_fs) die("%s not a block device",part);
if (st.st_rdev != (st.st_rdev & has_partitions(st.st_rdev)))
if (fstat(fd,&st) < 0) die("stat: %s : %s", part,strerror(errno));
if (!S_ISBLK(st.st_mode) && !force_fs) die("%s not a block device",part);
if (st.st_rdev != (st.st_rdev & has_partitions(st.st_rdev)))
- die("%s is not a master device with a primary parition table",part);
+ die("%s is not a master device with a primary par
t
ition table",part);
if (read(fd,&buf,SECTOR_SIZE) != SECTOR_SIZE) die("read %s: %s",part, strerror(errno));
cp = cfg_get_strg(cf_options,"force-backup");
if (read(fd,&buf,SECTOR_SIZE) != SECTOR_SIZE) die("read %s: %s",part, strerror(errno));
cp = cfg_get_strg(cf_options,"force-backup");
@@
-751,7
+740,7
@@
void do_install_mbr(char *part, char *what)
/* partition table read */
int read_partitions(char *part, int max, int *volid,
/* partition table read */
int read_partitions(char *part, int max, int *volid,
- struct partition *p,
long long
*where)
+ struct partition *p,
int64_t
*where)
{
int fd, i;
unsigned int second, base;
{
int fd, i;
unsigned int second, base;
@@
-759,7
+748,7
@@
int read_partitions(char *part, int max, int *volid,
struct partition pt[PART_MAX];
BOOT_PARAMS_1 hdr;
struct stat st;
struct partition pt[PART_MAX];
BOOT_PARAMS_1 hdr;
struct stat st;
-
long long
daddr;
+
int64_t
daddr;
if ((fd=open(part,O_RDONLY))<0) die("Cannot open '%s'", part);
if (fstat(fd,&st)<0) die("Cannot fstat '%s'", part);
if ((fd=open(part,O_RDONLY))<0) die("Cannot open '%s'", part);
if (fstat(fd,&st)<0) die("Cannot fstat '%s'", part);